| 
| 
 | Вопрос # 5 396/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!При экспорте данных из StringGrid в Excel вылетает ошибка "ole error 800A03EC". Подскажите пожалуйста в чем может быть проблема?
 Приложение:Переключить в обычный режим function export_excel(SG:TStringGrid):integer; constxlWBATWorksheet = -4167;var  Row, Col: Integer;  extens: string;  Sheet: OLEVariant;begin   try    form2.ea.Visible[0] := False;    form2.ea.Workbooks.Add(xlWBatWorkSheet,0);    Sheet      := form2.ea.Workbooks[1].WorkSheets[1];    Sheet.Name := 'ñòð1';    for col := 0 to SG.ColCount - 1 do      for row := 0 to SG.RowCount - 1 do        Sheet.Cells[row + 1, col + 1] := SG.Cells[col, row];    try      if (copy(form2.ea.Version[0],1,2)='12') then extens:='.xlsx' else extens:='.xls';      form2.ea.Workbooks[1].SaveCopyAs(Unit1.conf.DefDir+      GetHost(DownReadyList.ListBox1.Items[iglobal])+'_'+datetostr(date)+extens,0);     except      on EOleSysError do      // Error ?    end;  finally   
Form2.Log.Items.Add(Unit1.conf.DefDir+Unit1.GetHost(DownReadyList.ListBox1.Items[iglobal])+'_'+datetostr(date)+'.xls');    Form2.Log.Items.Add('Óñïåøíî
ñîçäàí');    form2.ea.DisplayAlerts[0]:= False;    form2.ea.Quit;    Sheet := Unassigned;   end;end;
|  |   Вопрос задал: mobidik (статус: Посетитель)Вопрос отправлен: 10 июня 2011, 10:31
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: corban Здравствуйте, mobidik!Посмотри, у тебя сам ексель-то запущен на момент экспорта данных? Судя по приведенному тобой коду ексель запускается где-то раньше експорта данных, но прибивается в этом куске, поэтому если твой код должен выполняться в цикле, то после первого же прохода ексель уничтожится (form2.ea.Quit), а заново не создастся.
 
|  | Ответ отправил: corban (статус: 2-ой класс)Время отправки: 14 июня 2011, 09:14
 
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 14 июня 2011, 07:04; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 10 июня 2011, 10:39 [#1]:Зацени вот это. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  10 июня 2011, 10:49: Вопрос перемещён из тематического раздела Delphi » Алгоритмы, преобразования в раздел Delphi » COM, ActiveX и взаимодействие с другими приложениями модератором Ерёмин А.А. 
|   | corban (статус: 2-ой класс), 14 июня 2011, 07:04 [#2]:Посмотри, у тебя сам ексель-то запущен на момент экспорта данных? Судя по приведенному тобой коду ексель запускается где-то раньше експорта данных, но прибивается в этом куске, поэтому если твой код должен выполняться в цикле, то после первого же прохода ексель уничтожится (form2.ea.Quit), а заново не создастся. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |