Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Импорт из Excel [D7, Win2k]


Vyacheslav ©   (2005-02-21 10:30:00) 

Госпада подскажите как считать данные из Excel файла ???


Sash   (2005-02-21 12:52:00) [1]

excel.quit;
excel:=unassigned;


Vyacheslav   (2005-02-21 12:33:00) [2]

Хе...если конечно открыта одна закладка)))


Vyacheslav   (2005-02-21 12:22:00) [3]

КаПиБаРа ©   (21.02.05 12:17) [9]

и процесс тоже грохает в диспечере задач !!! проверено !!!


КаПиБаРа   (2005-02-21 12:17:00) [4]

Vyacheslav ©   (21.02.05 12:14) [8]
это книжку закрывает, а не процесс убивает.


Vyacheslav   (2005-02-21 12:14:00) [5]

Кстати что бы убить процес excel.exe

excel.workBooks[1].close;
ну так вдруг кто то упустит из новичков вроде мня )))


Vyacheslav   (2005-02-21 12:10:00) [6]

Хааа.. Вот как у мня получилось !!!

var
excel: OleVariant;
begin
excel := CreateOleObject('Excel.Application');
excel.Workbooks.OPen('D:\convert2boss.atus.xls');
showmessage(excel.WorkBooks[1].WorkSheets[1].Cells[1,3]);

Всем спасибо !!!


Vyacheslav   (2005-02-21 11:52:00) [7]

>Digitman ©   (21.02.05 11:40) [5]

))) мдя промашка )))) тока все равно одна фигня что круглые что квадратные

var
excel: OleVariant;
doc: OleVariant;
begin
excel := CreateOleObject('Excel.Application');
doc := excel.Workbooks.Add('D:\convert2boss.atus.xls');
showmessage(doc.worksheets(0).cells(1,1).value);
end;

exception EOleSysError with message 'Member not found'

напишу код и проверь у себя если заработает то скинь )))) у меня не работает !!! выпадает на последней строке (showmessage....)


Digitman   (2005-02-21 11:40:00) [8]


> Vyacheslav ©   (21.02.05 11:28) [4]


квадратные скобки нужны лишь при общении с Экселом как с СОМ-объектом .. Паскаль трактует и проверяет значение в этих скобках как индекс в некоем индексном методе, исходя из объявления метода в юните, описывающем соотв.интерфейс

в данном же примере ты общаешься к Экселу как к олей-объекту, поэтому параметры вызова любых методов следует заключать в полукруглые скобки .. Паскаль трактует значения в таких скобках просто как некие параметры неких методов, никак не проверяя ни кол-во параметров ни их тип


Vyacheslav   (2005-02-21 11:28:00) [9]

Гм... вот что я написал !!!

excel: OleVariant;
doc: OleVariant;
begin
excel := CreateOleObject('Excel.Application');
doc := excel.Workbooks.Add('D:\convert2boss.atus.xls');
showmessage(doc.worksheets[0].cells(1,1).value);

все бы хорошо вот только в поселдней строке
exception EOleException with message 'invalid index'

если изменить индекс  
showmessage(doc.worksheets[1].cells(1,1).value);
то
exception EOleSysError with message 'Member not found'


sniknik   (2005-02-21 11:15:00) [10]

> Можно еще сохранить ексель в формате базы данных *.dbf и работать с ним.
в подобной выгрузке мало смысла, т.к. точно также как к dbf можно подключится и к екселю (как к базе/таблице), и работать точно также как с dbf. но только с данными, ни формулы ни форматирование недоступны (для dbf аналогично).


DimonS   (2005-02-21 10:52:00) [11]

Можно еще сохранить ексель в формате базы данных *.dbf и работать с ним. Хотя это не всегда прокатывает. Если не пройдет, то так, как написал Digitman ©.


Digitman   (2005-02-21 10:49:00) [12]

точно так же как и из любого другого файла
файл, который создал Excel, принципиально ничем не отличается от прочих файлов в системе

если же речь таки идет о документев формате MS Excel (хранимом в некоем файле), то для программной работы с этим документом лучше всего использовать сам Excel (как олей- или сом-сервер

var
 excel: OleVariant;
 doc: OleVariant;
..
 excel := CreateOleObject('Excel.Application');
 doc := excel.Workbooks.Add('somefile.xls', ..);
 showmessage(doc.worksheets(0).cells(1,1).value);


Наверх

Титульная страница Поиск, карта сайта Написать письмо