Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Из Excel в DBGrid   Найти похожие ветки 

 
Вовик   (2005-02-11 20:23) [0]

Предположим я копирую колоку из Excel.
Как мне достать её из буфера, а потом всавить в DBGrid c той строчки где курсор и дальше вниз?


 
Алхимик ©   (2005-02-11 20:38) [1]

Читать справку по DBGrid, до тех пор пока не будет достигнуто понимание того, что этот компонент только отображает некоторый набор данных.


 
Вовик   (2005-02-11 20:56) [2]

Ну ладно тогда как в Query


 
YurikGL ©   (2005-02-11 22:34) [3]

Как вариант, открыть excel через OLE, считывать по одной строчке и добавлять соответсвующие записи с помощью комманды insert into.

Но, вроде как, существует метод доступа к xls типа как к таблице БД, так что лучше даже его использовать.


 
cherrex ©   (2005-02-12 16:15) [4]

YurikGL © Но, вроде как, существует метод доступа к xls типа как к таблице БД, так что лучше даже его использовать.

А какой метод?


 
Вовик   (2005-02-13 09:07) [5]

procedure TBzForm.PASTEBitBtnClick(Sender: TObject);
var
CurrentPos: TBookmark;
FieldIndex,i:integer;
begin
MemoTXT.Clear;
MemoTXT.Lines.Add(Clipboard.AsText);
CurrentPos:=MainDataModule.QueryRab.GetBookmark;
FieldIndex:=????????????????????????????????????;
for i:=0 to (MemoTXT.Lines.Count-2) do begin
MainDataModule.QueryRab.Edit;
MainDataModule.QueryRab.Fields.Fields[FieldIndex].Text:=MemoTXT.Lines.Strings[i];
MainDataModule.QueryRab.Next;
end;
end;
Это я так сделал. Пользователь копирует столбик то если AsText его то это строки за ними пробел. Два столбика --два пробела.
Но возник вопрос-Как узнать индекс поля где находится указатель в Query?


 
ДухКороляАртура ©   (2005-02-13 22:10) [6]

Этот писал для скриптовой системы, пример в паскале
excel := createoleobject("excel.application");
//excel.visible := ShowExcel.Checked;
FileName := GetCurrentDir + "\orders.xls";
workbook := excel.workbooks.open(FileName);
worksheet := workbook.ActiveSheet;

i := 1;
ordid := "*";
while (ordid <> "") do
begin
 cell := worksheet.Cells(i,1);
 ordid := cell.Text;
 if (ordid <> "") then
 begin
   Append;
   dbEdit1.SetValue(ordid);
   cell := worksheet.Cells(i,2);
   dbEdit2.SetValue(cell.Text);
   cell := worksheet.Cells(i,3);
   dbEdit3.SetValue(cell.Text);
   cell := worksheet.Cells(i,4);
   dbEdit4.SetValue(cell.Text);
   cell := worksheet.Cells(i,5);
   dbEdit5.SetValue(cell.Text);
   Post;
 end;
 i := i + 1;
end;

//workbook.Close;
//Excel.Quit;
Excel := unassigned;

перепишешь под дельфю сам, принцип тот же



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.04 c
14-1108994387
boriskb
2005-02-21 16:59
2005.03.13
С модераторами не спорят!!


14-1108900364
Doxygen
2005-02-20 14:52
2005.03.13
Информация на CD-диске


6-1105438289
Senti
2005-01-11 13:11
2005.03.13
Передача файлов в отдельных потоках


14-1108985752
wl
2005-02-21 14:35
2005.03.13
Распознавание цифр на рисунке


3-1108102236
O.O
2005-02-11 09:10
2005.03.13
Принудительная запись кэш BDE на диск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский