Первоначально я пытался открыть файл XML в Excel. Но так как это занимает много времени, я сам анализировал XML в текстовый файл с разделителями табуляции. Я думал, что нашел правильный синтаксис в интернете. Я попробовал приведенный ниже код, используя значения, которые я записал в макросе Excel. У меня есть 18 столбцов файл с разделителями табуляции. Ошибка возникает в последней строке кода ниже при вызове метода «Рабочие листы».
Сообщение об ошибке:
Невозможно вызвать метод «Рабочие листы» без ссылки на пакет или объект в строке ./PostProcessingDev.pl 70.
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
Win32::OLE->Option(Warn => 3);
use strict;
my $Excel;
my $Sheet;
my $Workbook;
$Excel = CreateObject OLE "Excel.Application";
$Workbook = $Excel->Workbooks->OpenText({Filename =>"$inSelf->{'TXT'}",
Origin => xlMSDOS,
StartRow => 1,
DataType => xlDelimited,
TextQualifier => xlDoubleQuote,
ConsecutiveDelimiter => "False",
Tab => "True",
Semicolon => "False",
Comma => "False",
Space => "False",
Other => "False",
FieldInfo => [[1, xlTextFormat],
[2, xlTextFormat],
[3, xlTextFormat],
[4, xlTextFormat],
[5, xlTextFormat],
[6, xlTextFormat],
[7, xlTextFormat],
[8, xlTextFormat],
[9, xlTextFormat],
[10, xlTextFormat],
[11, xlTextFormat],
[12, xlTextFormat],
[13, xlTextFormat],
[14, xlTextFormat],
[15, xlTextFormat],
[16, xlTextFormat],
[17, xlTextFormat],
[18, xlTextFormat]],
TrailingMinusNumbers => "True"});
$Sheet = $Workbook->Worksheets(1);