Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.21;
Скачать: CL | DM;

Вниз

Импорт Excel в Delphi. Не получается   Найти похожие ветки 

 
M@g   (2010-09-01 15:19) [0]

Добрый день, мастера!

Пытаюсь импортировать данные из 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".
Как я понимаю, невозможно выполнить на закрытом датасет.
Подскажите пожалуйста, как обойти ошибку?


 
И. Павел ©   (2010-09-01 15:28) [1]

Table1 к чему-то подключен, или сам по себе? :)


 
И. Павел ©   (2010-09-01 15:33) [2]

Вот неплохая статья про TTable и работу с ним:
http://www.helloworld.ru/texts/comp/lang/delphi/delphi1/les35.htm

PS: а лучше сразу использовать SQL: так проще и удобнее.


 
M@g   (2010-09-01 15:34) [3]

Сам по себе, кажется. Я ничего не указывал, просто кинул на форму и все. хотя возможно и ошибаюсь. нужно было создать пустую БД Paradox с кол-вом полей, что и в файле. Я ошибаюсь? Прошу дать совет


 
M@g   (2010-09-01 15:37) [4]

Спасибо за статью, я с этим уже разобрался. Хотелось бы совета как исправить ошибку. А что касается SQL-то он мне очень нравится!


 
И. Павел ©   (2010-09-01 15:37) [5]

Сперва прочитайте что-нибудь по TTable ну и по базам данных вообще. И все станет ясно. А в двух словах все не объяснить.

TTable не содержит данных. Данные хранятся в базе. Тоесть без нее не обойтись (можно использовать всякие "MemTable", но это сложнее и нужно только в особых случаях).


 
Anatoly Podgoretsky ©   (2010-09-01 15:37) [6]

> M@g  (01.09.2010 15:19:00)  [0]

Надо открыть, чтобы он не был закрытым.


 
M@g   (2010-09-01 15:40) [7]


> Надо открыть, чтобы он не был закрытым.

Это понятно, но дело в том, что я ничего в свойствах не указал (имя и тип).


 
sniknik ©   (2010-09-01 15:42) [8]

ADO + Jet + Isam Excel, и ненужно подымать ком сервер екселя, или перекладывать данные в таблицу, страница екселевского файла сама по себе является таблицей, а файл базой (с точки зрения перечисленного в начале).


 
M@g   (2010-09-01 15:47) [9]


> Jet + Isam Excel


а вот с этим к сожалению, не знаком:(

Мастера, я вас прошу дать мне совет. Нужно ли предварительно создавать пустой файл или нет. думаю что простых ответов достаточно будет. Очень хочу поковыряться.


 
И. Павел ©   (2010-09-01 15:52) [10]

А еще можно так: в Access импортировать из excel, из Access экспортировать таблицу в парадокс. И никакого программирования.


 
Anatoly Podgoretsky ©   (2010-09-01 15:57) [11]

> И. Павел  (01.09.2010 15:33:02)  [2]

Лучше Экспорт в Дельфи, чем импорт в Экселе. Дельфи хоть про Эксель все
знает, а наоборот нуль.


 
Anatoly Podgoretsky ©   (2010-09-01 15:58) [12]

> M@g  (01.09.2010 15:34:03)  [3]

Не рассматривай Парадокс как файл, это таблицы СУБД


 
Anatoly Podgoretsky ©   (2010-09-01 15:59) [13]

> M@g  (01.09.2010 15:40:07)  [7]

А зря, надо было указать, свойство Active


 
Anatoly Podgoretsky ©   (2010-09-01 16:00) [14]

> И. Павел  (01.09.2010 15:52:10)  [10]

А Акцесс здесь зачем?


 
Anatoly Podgoretsky ©   (2010-09-01 16:03) [15]


> M@g   (01.09.10 15:47) [9]

БДЕ не поддерживает конструкции SELECT FROM INSERT INTO, поэтому таблица должна существовать.


 
И. Павел ©   (2010-09-01 16:12) [16]

> А Акцесс здесь зачем?

У меня в excel в диалоге сохранения нет расширения ".db".


 
Anatoly Podgoretsky ©   (2010-09-01 16:16) [17]

> И. Павел  (01.09.2010 16:12:16)  [16]

А в Акцессе есть?


 
sniknik ©   (2010-09-01 16:17) [18]

> БДЕ не поддерживает конструкции SELECT FROM INSERT INTO, поэтому таблица должна существовать.
а вот Jet поддерживает, и при подключении к excel можно выполнять запросы с использованием других isam-ов. (важно, т.к. например из подключения к исаму "парадокс" другие не используются)


 
И. Павел ©   (2010-09-01 16:19) [19]

> А в Акцессе есть?

В Access я выбираю таблицу и в контекстном меню есть пункт экспорт->файл Paradox (office 2003).


 
Плохиш ©   (2010-09-01 16:20) [20]


> M@g   (01.09.10 15:47) [9]
>
>
> > Jet + Isam Excel
>
>
> а вот с этим к сожалению, не знаком:(
>
> Мастера, я вас прошу дать мне совет.

Советую начать с изучения основ.


 
Anatoly Podgoretsky ©   (2010-09-01 16:24) [21]

> И. Павел  (01.09.2010 16:19:19)  [19]

Акцесс могуч как дуб


 
Anatoly Podgoretsky ©   (2010-09-01 16:25) [22]

Совет(ы) тебе дали и ты понял их :-)


 
Dennis I. Komarov ©   (2010-09-01 16:30) [23]


>  XML:=CreateOLEObject("Excel.Application");

Очучение, что код был тупо с...........скопипастен


 
M@g   (2010-09-01 16:36) [24]


> Очучение, что код был тупо с...........скопипастен
>

да, так и есть. скопировал для изучения и понимания


 
Dennis I. Komarov ©   (2010-09-01 16:39) [25]


> да, так и есть. скопировал для изучения и понимания

Основы Вамс сударь изучать и понимать надо, а не это чудо...


 
Anatoly Podgoretsky ©   (2010-09-01 16:42) [26]

> M@g  (01.09.2010 16:36:24)  [24]

Не знаю как с изучением, но с пониманием плохо.


 
M@g   (2010-09-01 16:50) [27]

все равно постараемся понять и изучить. Не было желания. я бы тут не был



Страницы: 1 вся ветка

Текущий архив: 2010.11.21;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.01 c
15-1282002935
Дмитрий С
2010-08-17 03:55
2010.11.21
Синхронизация доступа к хешу.


15-1281203081
track
2010-08-07 21:44
2010.11.21
старый софт


6-1229289935
ZIlog
2008-12-15 00:25
2010.11.21
TWebBrowser и заполнение формы.


10-1170677069
Juice
2007-02-05 15:04
2010.11.21
Где находится библиотека типов для Excel 2003 ?


6-1229006287
dmitry_12_08_73
2008-12-11 17:38
2010.11.21
Компонент для закачки файла по LAN