Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Из 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
1-1109266347
ki11er
2005-02-24 20:32
2005.03.13
TShockwaveFlash и интерфейсы ....


14-1108885880
AlterEgo of WondeRu
2005-02-20 10:51
2005.03.13
что выбрать для написания виртуального драйвера?


6-1105465185
Meneee
2005-01-11 20:39
2005.03.13
Копирование файлов по сети


1-1108961311
buka
2005-02-21 07:48
2005.03.13
Поисковая система


1-1109184659
tUUm
2005-02-23 21:50
2005.03.13
Сервис запускается но неработает.