![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Из Excel в DBGrid [D7, Paradox]
Вовик © (2005-02-11 20:23:00)Предположим я копирую колоку из Excel.
Как мне достать её из буфера, а потом всавить в DBGrid c той строчки где курсор и дальше вниз?
ДухКороляАртура (2005-02-13 22:10:00) [1]Этот писал для скриптовой системы, пример в паскале
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;
перепишешь под дельфю сам, принцип тот же
Вовик (2005-02-13 09:07:00) [2]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?
cherrex (2005-02-12 16:15:00) [3]YurikGL © Но, вроде как, существует метод доступа к xls типа как к таблице БД, так что лучше даже его использовать.
А какой метод?
YurikGL (2005-02-11 22:34:00) [4]Как вариант, открыть excel через OLE, считывать по одной строчке и добавлять соответсвующие записи с помощью комманды insert into.
Но, вроде как, существует метод доступа к xls типа как к таблице БД, так что лучше даже его использовать.
Вовик (2005-02-11 20:56:00) [5]Ну ладно тогда как в Query
Алхимик (2005-02-11 20:38:00) [6]Читать справку по DBGrid, до тех пор пока не будет достигнуто понимание того, что этот компонент только отображаетнекоторый набор данных.