Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: 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 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
3-1130312080
oleggar
2005-10-26 11:34
2005.12.11
Clipper indexing


14-1132302191
pic509
2005-11-18 11:23
2005.12.11
Ограничения в Database Descktop под Delphi ?


6-1125535648
DeathLess
2005-09-01 04:47
2005.12.11
Скачать файл с докачкой


14-1132647302
злобная танька
2005-11-22 11:15
2005.12.11
Посоветуйте книжку по VC++ или как там его


14-1132522510
alex02
2005-11-21 00:35
2005.12.11
Помогите взять интеграл