Текущий архив: 2004.04.18;
Скачать: CL | DM;
ВнизExcel Найти похожие ветки
← →
PiratA © (2004-03-16 15:37) [0]У кого-нить есть ссылки на инфу по работе с TExcelApplication и воркшитамив электронном виде?
← →
Palladin © (2004-03-16 15:42) [1]Не рекомендую с ним работать.
← →
PiratA © (2004-03-16 15:54) [2]> Palladin ©
Допустим я послушаюсь Вашего совета... как мне прочесть данные из файла Экселя в СтрингГрид?
← →
Palladin © (2004-03-19 09:03) [3]Работать с оле объектом.
CreateOLEObject("Excel.Application");
и тд.
В интернете множество примеров работы...
← →
Goida © (2004-03-19 09:32) [4]2Palladin
> Не рекомендую с ним работать > с TExcelApplication
> Работать с оле объектом.
> CreateOLEObject("Excel.Application");
> и тд.
Ты, наверно, не знаешь, но это одно и то же. Так что можно работать как с тем, так и с этим. Отличие их заключается только, как это называют, позднем и раннем связывании.
> PiratA
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=502
← →
Palladin © (2004-03-24 14:38) [5]
> Goida © (19.03.04 09:32) [4]
Ты наверное не знаешь, но именно по этому это не одно и тоже. Особенно на клиентах с разными версиями экселя.
← →
PiratA © (2004-03-25 14:02) [6]
> Palladin © (24.03.04 14:38) [5]
А можете информации об этом хоть какой-то подкинуть?
← →
YurikGl © (2004-03-25 14:43) [7]> Не рекомендую с ним работать.
Здря, быстрее только XML
To PiratA ©
Сам учился так: записывал макрос, смотрел как он устроен в VBA и перетаскивал это на Delphi.
Вот один из моих кодов.
E1.Connect;
E1.Visible[0]:=true;
E1.Workbooks.Add(Null,1);
l:=1;
e1.Range["A"+IntToStr(l),"A"+IntToStr(l)].ColumnWidth:=18;
e1.Range["B"+IntToStr(l),"B"+IntToStr(l)].ColumnWidth:=20;
e1.Range["C"+IntToStr(l),"C"+IntToStr(l)].ColumnWidth:=25;
e1.Range["D"+IntToStr(l),"D"+IntToStr(l)].ColumnWidth:=10;
e1.Range["E"+IntToStr(l),"E"+IntToStr(l)].ColumnWidth:=21;
SborkaExport("Заголовок","Параметр");
Procedure SborkaExport (Capt,sb:string);
var
o,i:longint;
begin
E1.Range["A"+IntToStr(l),"A"+IntToStr(l)].formula:=capt;
E1.Range["A"+IntToStr(l),"A"+IntToStr(l)].Select;
E1.Range["A"+IntToStr(l),"A"+IntToStr(l)].Font.Size:=12;
E1.Range["A"+IntToStr(l),"A"+IntToStr(l)].Font.Bold:=true;
E1.Range["A"+IntToStr(l),"D"+IntToStr(l)].Merge(EmptyParam);
E1.Range["A"+IntToStr(l),"A"+IntToStr(l)].HorizontalAlignment:=xlCenter;
inc(l);
ADODataSetVPSborki.First;
E1.Range["A"+IntToStr(l),"A"+IntToStr(l)].formula:="Îáîçíà÷åíèå";
E1.Range["B"+IntToStr(l),"B"+IntToStr(l)].formula:="Ðåäàêöèÿ";
E1.Range["C"+IntToStr(l),"C"+IntToStr(l)].formula:="Íàèìåíîâàíè&# 229;";
E1.Range["D"+IntToStr(l),"D"+IntToStr(l)].formula:="Êîëè÷åñòâî";
inc(l);
o:=l;
if ADODataSetVPSborki.RecordCount>0 then begin
Repeat
if ADODataSetVPSborki.Fields[6].value=sb then begin
if ADODataSetVPSborki.Fields[3].value<>null then
E1.Range["A"+IntToStr(l),"A"+IntToStr(l)].formula:=ADODataSetVPSborki.Fields[3].value;
if ADODataSetVPSborki.Fields[4].value<>null then
E1.Range["B"+IntToStr(l),"B"+IntToStr(l)].formula:=ADODataSetVPSborki.Fields[4].value;
if ADODataSetVPSborki.Fields[2].value<>null then
E1.Range["C"+IntToStr(l),"C"+IntToStr(l)].formula:=ADODataSetVPSborki.Fields[2].value;
if ADODataSetVPSborki.Fields[1].value<>null then
E1.Range["D"+IntToStr(l),"D"+IntToStr(l)].formula:=ADODataSetVPSborki.Fields[1].value;
inc(l)
end;
ADODataSetVPSborki.Next;
until ADODataSetVPSborki.Eof;
end;
if o=l then begin
inc(l)
end;
for i:=1 to 4 do
E1.Range["A"+IntToStr(o-1),"D"+IntToStr(l-1)].Borders.Item[i].LineStyle:=xlContinuous;
inc(l)
end;
Удачи
← →
Goida © (2004-03-29 13:58) [8]
> Palladin
> > Goida © (19.03.04 09:32) [4]
>
> Ты наверное не знаешь, но именно по этому это не одно и
> тоже. Особенно на клиентах с разными версиями экселя.
Суть их работы в одном и том же. Разница только в том, что TExcelApplication - это интерфейс COM-объекта.
Страницы: 1 вся ветка
Текущий архив: 2004.04.18;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.034 c