Вниз
Скачать: CL | DM;

Каким способом проще всего вытянуть данные из ячеек Excel в Delph   Найти похожие ветки 

 
ANB ©   (2005-11-15 13:55) [0]

Нужно обработать (проверить) лист (отчет в виде xls файла) из делфи. При этом на машине может быть любая версия офиса. Сам файл версии 95/97.
Каким способом легче воспользоваться ?


 
КиТаЯц ©   (2005-11-15 14:01) [1]

Вопрос с бородой. отвечать лень (Поиск).


 
guru-guru ©   (2005-11-15 14:09) [2]

Для того, чтобы можно было работать с любой версией офиса, ты должен использовать пзднее связывание.


var
       ServerIsRunning:boolean;
       Unknown:IUnknown;
       Result:HResult;
       AppProgID: string;
       App:Variant;
       x,y,num:integer;
       Doc,FileName,s:String;
       sqlfrm:string;
       t:integer;
begin
  AppProgID:="Excel.Application";
  ServerIsRunning:=false;
  Result:=GetActiveObject(ProgIDToClassID(AppProgID),nil,Unknown);
  if (Result=MK_E_UNAVAILABLE) then
     App:=CreateOleObject(AppProgID)
  else
     begin
        ShowMessage("Закройте все копии EXCEL и повторите попытку");
// здесь можно обработать по другому и сможешь работать с уже открытым документом
        exit;
     end;
try //мы создали объект и его нужно обязательно удалить.
  App.Visible:=false;
      App.WorkBooks.Open(FileName);

      App.ActiveWorkBook.Close(false,prg_path+FileName);

       finally
          if not ServerIsRunning then App.quit;
          App:=Unassigned;
       end;
end;



 
guru-guru ©   (2005-11-15 14:12) [3]

Чтобы считать данные из екселя
s:=App.WorkBooks[1].WorkSheets["Лист1"].Cells[1,1].Value
Чтобы записать данные в ексел
App.WorkBooks[1].WorkSheets["Лист1"].Cells[1,1].Value:="А Я УЖЕ ТУТ!!!"


 
ANB ©   (2005-11-15 14:18) [4]


> КиТаЯц ©   (15.11.05 14:01) [1]

Так я только способ спрашиваю - может проще в CSV формат выгрузить, или через ODBC подключить.


> guru-guru ©   (15.11.05 14:09) [2]

Спасибо за пример. А этот способ быстро работает (листы могут быть немаленькие) ?


 
guru-guru ©   (2005-11-15 14:30) [5]

Способ не самый быстрый. Но зато работает с любым офисом. А если тебе скорость нужна, то тебе только ОДБЦ юзать. (формат файла ХЛС я не встречал).

А если CSV выгрузишь, то вообще можно будет без офиса юзать и скорость будет большая.

Я использую позднее связывание - простота использования, а файлы у меня не такие уж и большие + возможность использования всех возможностей Екселя: диаграммы, формулы, и т.д. и все через делфи.


 
Stakan ©   (2005-11-15 14:37) [6]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=249
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=272
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=313
Занимательные статьи как раз по теме



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.974 c
8-1120939291
line
2005-07-10 00:01
2005.12.11
Вопрос о режимах смешивания изображений.


1-1131975140
dzmitry_li
2005-11-14 16:32
2005.12.11
Вызов событий Combobox созданных runtime


2-1132670570
ABS
2005-11-22 17:42
2005.12.11
Запуск exe


4-1129004207
Zert
2005-10-11 08:16
2005.12.11
например в чужое окно можно записать значение, а как прочесть из


4-1123885355
Германн
2005-08-13 02:22
2005.12.11
"Безопасное извлечение устойства"




   Наверх