|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Импорт из excel в ДБ
Доброго времени суток всем. Проблема состои в том что при считывании информации с листа excel вылетает ошибка Ole error 800401A8 и данные с листа записываются но не все, что делать незнаю помогите плз вот код для считывания:
Код:
begin if OpenDialog1.Execute then begin ExcelApplication1.ConnectKind := ckNewInstance; ExcelApplication1.AutoConnect:=true; // запускаем Excel ExcelApplication1.AutoQuit := true; // открываем книгу ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.OpenXML(OpenDialog1.FileName,EmptyParam)); // соединяемся с книгой ExcelApplication1.ConnectTo(ExcelWorkbook1.Application); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as ExcelWorksheet); row:=30; //считываем из файла for i:=2 to row do begin // считываем ячейки v1:=ExcelWorksheet1.Range['A'+inttostr(1),EmptyParam]; v2:=ExcelWorksheet1.Range['A'+inttostr(i),EmptyParam]; v3:=ExcelWorksheet1.Range['B'+inttostr(i),EmptyParam]; v4:=ExcelWorksheet1.Range['C'+inttostr(i),EmptyParam]; v5:=ExcelWorksheet1.Range['D'+inttostr(i),EmptyParam]; v6:=ExcelWorksheet1.Range['E'+inttostr(i),EmptyParam]; v7:=ExcelWorksheet1.Range['F'+inttostr(i),EmptyParam]; // записываем в таблицу Table1.Append; // добавляеь запись в БД Table1.FieldByName('Gruppa').AsString:=VarToStr(v1); // записываем данные Table1.FieldByName('FIO').AsString:=VarToStr(v2); Table1.FieldByName('Data').AsString:=DateToStr(v3); Table1.FieldByName('Ctrah_komp').AsString:=VarToStr(v4); Table1.FieldByName('Ceria_polisa').AsString:=VarToStr(v5); Table1.FieldByName('Nomer_polisa').AsString:=VarToStr(v6); Table1.FieldByName('Dom_adres').AsString:=VarToStr(v7); Table1.Post; // сохраняем изменения // чтоб приложение не "повисало" Application.ProcessMessages; end; // выходим из Excel ExcelApplication1.Quit; end; |
#2
|
||||
|
||||
Мда походу и тут не знают ответ на этот вопрос...
|
#3
|
||||
|
||||
попробуй так:
Код:
//...... var Excel:Variant; i:integer; begin try Excel := CreateOleObject('Excel.Application');//---создаем объект Excel и запускаем его except raise Exception.Create('Ошибка запуска Excel'); end; Excel.Workbooks.Open[OpenDialog1.FileName]; for i:=2 to row do begin v1:=Excel.Range['A'+intToStr(i)]; //...... думаю разберешься... |
#4
|
||||
|
||||
Толик спасибо тебе огромное всё норм работает, баг был в компанетнах ExcelApplication1 .... а без них всё норм работает...
|