Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

Каким способом проще всего вытянуть данные из ячеек 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
2-1133023023
komsomolec
2005-11-26 19:37
2005.12.11
Как проиграть звук определённой частоты


3-1130055239
ViktorZ
2005-10-23 12:13
2005.12.11
Ошибки не выдает ,но и не делает того, что надо


1-1131573898
Serafim
2005-11-10 01:04
2005.12.11
Вызов процедуры из строки


2-1133037065
vadik
2005-11-26 23:31
2005.12.11
coinitialize


2-1132565333
Express
2005-11-21 12:28
2005.12.11
UpCase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский