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

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

Импорт Excel в Delphi. Не получается [D7, XP]


Страницы:   1 2

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, и ненужно подымать ком сервер екселя, или перекладывать данные в таблицу, страница екселевского файла сама по себе является таблицей, а файл базой (с точки зрения перечисленного в начале).


Страницы:   1 2

Наверх

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