Главная страница
    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.46 MB
Время: 0.036 c
1-1131793569
<PREDATOR>
2005-11-12 14:06
2005.12.11
Как запустить прогу из командной строки


2-1132275620
Pop
2005-11-18 04:00
2005.12.11
Как узнать размер TPopupMenu ?


2-1132400297
Volfram
2005-11-19 14:38
2005.12.11
Проблема с MediaPlayer


14-1132487859
_Sergey_
2005-11-20 14:57
2005.12.11
Заочная олимпиада (г. Омск 2005 год)


14-1132300801
vopros
2005-11-18 11:00
2005.12.11
дайте, пожайлуста ссылку на ГОСТ на ТЗ для написанио ПО





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский