Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.06.2009, 17:36
Аватар для del3p
del3p del3p вне форума
Прохожий
 
Регистрация: 19.06.2009
Сообщения: 3
Репутация: 10
Злость Импорт из 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  
Старый 19.06.2009, 20:30
Аватар для del3p
del3p del3p вне форума
Прохожий
 
Регистрация: 19.06.2009
Сообщения: 3
Репутация: 10
Печаль

Мда походу и тут не знают ответ на этот вопрос...
  #3  
Старый 19.06.2009, 21:31
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

попробуй так:
Код:
//......
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  
Старый 19.06.2009, 22:09
Аватар для del3p
del3p del3p вне форума
Прохожий
 
Регистрация: 19.06.2009
Сообщения: 3
Репутация: 10
Хорошо

Толик спасибо тебе огромное всё норм работает, баг был в компанетнах ExcelApplication1 .... а без них всё норм работает...
Закрытая тема


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:03.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter