![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Импорт из 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);