Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Excel и Delphi [D5, Win95/98, Win2k]


Weare ©   (2002-12-23 13:36:00) 

Добрый день мастера.
Подскажите, плз, как можно из Excel"евского файла закачать в таблицу Парадокс только те записи, где стоит соответствующая фамилия?
Вообще, как можно качать данные с Excel"я?
Подскажите, уважаемые, хоть в каком направлении двигаться.


Jeka   (2002-12-26 08:13:00) [1]

для заполнения таблицы используется внутренний объект Excel - Range Есть такой же у Word чтобы небыло путуници пишут excel2000.range Вобщем для определения библиотеки ексель.


Weare   (2002-12-23 18:17:00) [2]

>to Jeka

Подскажи откуда взялось Excel2000.Range


Jeka   (2002-12-23 17:08:00) [3]

Из одной книги выдрал,самому когдато надобыло
Простой пример думаю все понятно

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
RangeE:Excel2000.Range;
I, Row:Integer;
Bookmark:TBookmarkStr;
begin
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Workbooks.Add(NULL,0);
RangeE:=ExcelApplication1.ActiveCell;
for I:=0 to Table1.Fields.Count - 1 do
begin
RangeE.Value:=Table1.Fields [I].DisplayLabel;
RangeE:=RangeE.Next;
end;
try
Bookmark:=Table1.Bookmark;
try
Table1.First;
Row:=2;
while not Table1.Eof do
begin
RangeE:=ExcelApplication1.Range["A"+
IntToStr(Row), "A"+ IntToStr(Row)];
for I:=0 to Table1.Fields.Count - 1 do
begin
RangeE.Value:=Table1.Fields[I].AsString;
RangeE:=RangeE.Next;
end;
Table1.Next;
Inc(Row);
end;
finally
Table1.Bookmark:=Bookmark;
end;
finally
Table1.EnableControls;
end;
RangeE:=ExcelApplication1.Range["A1","E"+ IntToStr (Row-1)];
RangeE.AutoFormat(3,NULL,NULL,NULL,NULL,NULL,NULL);
end;


procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
Table1.IndexFieldNames :=Column.FieldName;
end;


Weare   (2002-12-23 14:59:00) [4]

Огр. спасибо!


RWolf   (2002-12-23 14:43:00) [5]

ЗЫ: это пример вставки данных в Excel, вырезан из рабочего приложения. Данные _из_ Excel - качаются так же. Понятия запроса в Excel нет, так что качать придется все подряд и выбирать нужные данные самому.
Подробнее о методах/свойствах/и т.п. - см. встроенный в Excel help (то, что касается VBA)


RWolf   (2002-12-23 14:37:00) [6]


var vExcel,vWorkBook,vWorkSheet,vCell,v1,v2,vs: OLEVariant;
...
vExcel := CreateOLEObject("Excel.Application");
vWorkBook := vExcel.WorkBooks.Add;
vWorkSheet := vWorkBook.WorkSheets.Add;

vWorkSheet.Cells[1,1]:=3.14159;
vWorkSheet.Cells[2,1]:="тест";

vExcel.Visible := True


Наверх

Титульная страница Поиск, карта сайта Написать письмо