![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обмен данными с Excel [D7, WinXP]
Fill © (2003-01-24 21:39:00)Уважаемы мастера, есть такой вопрос: есть DBGrid1(пустой), связан с Table1, 3 столбца, 4 строки. Так же есть Excel таблица, в которой есть так же 3 столбца и 4 строки, но они начинаются не с первой ячейки (А1), а с С8, и заканчиваются соответственно с Е11. (Сама таблица начинается с А1). Так вот сам вопрос: как перенести эти данные из ячеек Excel в ячейки DBGrid, уже всю голову сломал, пока ни один метод не помог, может быть кто-то есть поопытней! Только не спрашивайте зачем именно в DBGrid, сам не понимаю – задание такое. Заранее благодарен!
Сергей Чурсин (2003-01-24 23:08:00) [1]А методы DBGrid никакого
Можно попробовать через BDE+ODBC (что тебе вероятно, и придется сделать, но я это не пробовал), а можно использовать ActiveX automation в обычный Grid.
Вот тебе фрагменты кода из одной моей программки:
var ExOle :OleVariant;
Sheet1, Sheet2, Cells:OleVariant;
....
procedure TForm1.ConnectToExcel;
begin
try
ExOle:=GetActiveOleObject("Excel.Application");
except
ExOle:=CreateOleObject("Excel.Application");
if ExOle.Workbooks.Count<1 then
ExOle.Workbooks.Add;
if ExOle.Workbooks[1].Sheets.Count<2 then
ExOle.Workbooks[1].Sheets.Add("Sheets1");
if ExOle.Workbooks[1].Sheets.Count<2 then
ExOle.Workbooks[1].Sheets.Add("Sheets2");
end;
ExOle.Visible:=true;
end;
....
Sheet1:= ExOle.ActiveWorkbook.Worksheets[s1];
Sheet2:= ExOle.ActiveWorkbook.Worksheets[s2];
....
Sheet1.Cells[y2,c1]:=b;
.....
подробнее по Exel activex-automation смотри help по VBA - только надо его специально проинсталлировать в office.