![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Импорт Excel в Delphi. Не получается [D7, XP]
M@g © (2010-09-01 15:19:00)Добрый день, мастера!
Пытаюсь импортировать данные из Excel-файла в Dbgrid
Исходные данные: TTable, DataSource, Dbgrid и сам Excel-файл
Код:
var XML: variant;//ïðèëîæåíèå Excel
i,index:integer;
begin
OpenDialog1.DefaultExt := '.xls'; // ïîëüçîâàòåëü âûáèðàåò ôàéë äëÿ èìïîðòà äàííûõ
OpenDialog1.Filter := 'Excel (*.xls)|*.xls';
if OpenDialog1.Execute then
begin
XML:=CreateOLEObject('Excel.Application');
XML.Visible:=False;
XML.Workbooks.Open(OpenDialog1.FileName);
i:=XML.ActiveSheet.UsedRange.Rows.Count; //êîëè÷åñòâî ñòðîê â òàáëèöå
for index:=2 to i do
begin
Table1.insert;
Table1.Fields[0].Value:=XML.Sheets[1].cells[index,1].Text;
Table1.Fields[1].value:=XML.Sheets[1].cells[index,2].Text;
Table1.Fields[2].Value:=XML.Sheets[1].cells[index,3].Text;
Table1.Fields[3].Value:=XML.Sheets[1].cells[index,4].Text;
Table1.Fields[4].Value:=XML.Sheets[1].cells[index,5].Text;
Table1.Post;
end;
XML.Application.Quit;
end;
Библиотека ComObj подключена
Результат - сообщение: "table1: Cannot perform this operation on a closed dataset".
Как я понимаю, невозможно выполнить на закрытом датасет.
Подскажите пожалуйста, как обойти ошибку?
M@g (2010-09-01 16:50:00) [1]все равно постараемся понять и изучить. Не было желания. я бы тут не был
Anatoly Podgoretsky (2010-09-01 16:42:00) [2]> M@g (01.09.2010 16:36:24) [24]
Не знаю как с изучением, но с пониманием плохо.
Dennis I. Komarov (2010-09-01 16:39:00) [3]
> да, так и есть. скопировал для изучения и понимания
Основы Вамс сударь изучать и понимать надо, а не это чудо...
M@g (2010-09-01 16:36:00) [4]
> Очучение, что код был тупо с...........скопипастен
>
да, так и есть. скопировал для изучения и понимания
Dennis I. Komarov (2010-09-01 16:30:00) [5]
> XML:=CreateOLEObject('Excel.Application');
Очучение, что код был тупо с...........скопипастен
Anatoly Podgoretsky (2010-09-01 16:25:00) [6]Совет(ы) тебе дали и ты понял их :-)
Anatoly Podgoretsky (2010-09-01 16:24:00) [7]> И. Павел (01.09.2010 16:19:19) [19]
Акцесс могуч как дуб
Плохиш (2010-09-01 16:20:00) [8]
> M@g (01.09.10 15:47) [9]
>
>
> > Jet + Isam Excel
>
>
> а вот с этим к сожалению, не знаком:(
>
> Мастера, я вас прошу дать мне совет.
Советую начать с изучения основ.
И. Павел (2010-09-01 16:19:00) [9]> А в Акцессе есть?
В Access я выбираю таблицу и в контекстном меню есть пункт экспорт->файл Paradox (office 2003).
sniknik (2010-09-01 16:17:00) [10]> БДЕ не поддерживает конструкции SELECT FROM INSERT INTO, поэтому таблица должна существовать.
а вот Jet поддерживает, и при подключении к excel можно выполнять запросы с использованием других isam-ов. (важно, т.к. например из подключения к исаму "парадокс" другие не используются)
Anatoly Podgoretsky (2010-09-01 16:16:00) [11]> И. Павел (01.09.2010 16:12:16) [16]
А в Акцессе есть?
И. Павел (2010-09-01 16:12:00) [12]> А Акцесс здесь зачем?
У меня в excel в диалоге сохранения нет расширения ".db".
Anatoly Podgoretsky (2010-09-01 16:03:00) [13]
> M@g (01.09.10 15:47) [9]
БДЕ не поддерживает конструкции SELECT FROM INSERT INTO, поэтому таблица должна существовать.
Anatoly Podgoretsky (2010-09-01 16:00:00) [14]> И. Павел (01.09.2010 15:52:10) [10]
А Акцесс здесь зачем?
Anatoly Podgoretsky (2010-09-01 15:59:00) [15]> M@g (01.09.2010 15:40:07) [7]
А зря, надо было указать, свойство Active
Anatoly Podgoretsky (2010-09-01 15:58:00) [16]> M@g (01.09.2010 15:34:03) [3]
Не рассматривай Парадокс как файл, это таблицы СУБД
Anatoly Podgoretsky (2010-09-01 15:57:00) [17]> И. Павел (01.09.2010 15:33:02) [2]
Лучше Экспорт в Дельфи, чем импорт в Экселе. Дельфи хоть про Эксель все
знает, а наоборот нуль.
И. Павел (2010-09-01 15:52:00) [18]А еще можно так: в Access импортировать из excel, из Access экспортировать таблицу в парадокс. И никакого программирования.
M@g (2010-09-01 15:47:00) [19]
> Jet + Isam Excel
а вот с этим к сожалению, не знаком:(
Мастера, я вас прошу дать мне совет. Нужно ли предварительно создавать пустой файл или нет. думаю что простых ответов достаточно будет. Очень хочу поковыряться.
sniknik (2010-09-01 15:42:00) [20]ADO + Jet + Isam Excel, и ненужно подымать ком сервер екселя, или перекладывать данные в таблицу, страница екселевского файла сама по себе является таблицей, а файл базой (с точки зрения перечисленного в начале).