![]() |
| ||
|
|
Новости |
Поиск |
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 15:40:00) [21]
> Надо открыть, чтобы он не был закрытым.
Это понятно, но дело в том, что я ничего в свойствах не указал (имя и тип).
Anatoly Podgoretsky (2010-09-01 15:37:00) [22]> M@g (01.09.2010 15:19:00) [0]
Надо открыть, чтобы он не был закрытым.
И. Павел (2010-09-01 15:37:00) [23]Сперва прочитайте что-нибудь по TTable ну и по базам данных вообще. И все станет ясно. А в двух словах все не объяснить.
TTable не содержит данных. Данные хранятся в базе. Тоесть без нее не обойтись (можно использовать всякие "MemTable", но это сложнее и нужно только в особых случаях).
M@g (2010-09-01 15:37:00) [24]Спасибо за статью, я с этим уже разобрался. Хотелось бы совета как исправить ошибку. А что касается SQL-то он мне очень нравится!
M@g (2010-09-01 15:34:00) [25]Сам по себе, кажется. Я ничего не указывал, просто кинул на форму и все. хотя возможно и ошибаюсь. нужно было создать пустую БД Paradox с кол-вом полей, что и в файле. Я ошибаюсь? Прошу дать совет
И. Павел (2010-09-01 15:33:00) [26]Вот неплохая статья про TTable и работу с ним:
http://www.helloworld.ru/texts/comp/lang/delphi/delphi1/les35.htm
PS: а лучше сразу использовать SQL: так проще и удобнее.
И. Павел (2010-09-01 15:28:00) [27]Table1 к чему-то подключен, или сам по себе? :)