OpenTemplate ошибка инициализации COM

Avatar
  • обновлен
  • На рассмотрении

Подскажите, пожалуйста, почему возникает ошибка инициализации COM при запуске функции OpenTemplate?

Для скрипта задан интервал запуска - 1 раз в секунду.

{Pascal Script}
{ Make_Journal. Сгенерировать вахтенный журнал }
Const
TEMPLATE_NAME = 'D:\slProject\UserSetting\Journal_Template.xlsx';
J_NAME = 'D:\slProject\UserSetting\Journal_%s.xlsx';

Var
bMake : Boolean = false;
res, iTagVal : Integer = 0;
row : Integer = 3;
sDate, sDateStart, sDateStop, sTime, sTemp : String;
sCellName, sTagName, sTagVal, sJournalName : String;

Begin

  if FileExists(TEMPLATE_NAME) then
    res := Excel.OpenTemplate(TEMPLATE_NAME);
  if res <> 0 then begin
    sTemp := 'Ошибка ' + IntToStr(res) + ' открытия шаблона для файла : ' + TEMPLATE_NAME;
    Log(esInfo, sTemp);
   end
else begin
  row := ReadValue('JournalRow');
  sTemp := 'Запись в строку ' + IntToStr(row);
  Log(esInfo, sTemp);
  sDate := FormatDateTime('DD.MM.YYYY', Now);
  sTime := FormatDateTime('HH:MM:SS', Now);
  sCellName := 'A' + IntToStr(row);  
  Excel.Cell[sCellName] := sDate;
  sCellName := 'B' + IntToStr(row);
  Excel.Cell[sCellName] := sTime;
  Excel.Show();
  Excel.Save(sJournalName);
  Excel.Close();

  row := row + 1;
  WriteValue('JournalRow', row);

end

end.

Avatar
Цитата от Станислав С

Я работаю под учетной записью с правами администратора.

Ок. Отдал на проверку, по результатам напишу. Подскажите по каким причинам решили использовать именно работу с Excel, судя по коду задача достаточно простая, почему не использовали работу к примеру с CSV файлом, он менее громоздкая в плане ресурсов, чем каждый раз поднимать объект Excel.