Первоначально я пытался открыть файл XML с помощью Excel. Но поскольку это занимает много времени, я сам разобрал XML в текстовый файл с разделителями табуляции. Я думал, что нашел правильный синтаксис в Интернете. Я попробовал код ниже, используя значения, которые я записал с помощью макроса Excel. У меня есть файл с разделителями табуляции из 18 столбцов. Ошибка возникает в последней строке приведенного ниже кода при вызове метода «Рабочие листы».
Сообщение об ошибке: Невозможно вызвать метод "Worksheets" без ссылки на пакет или объект в строке 70 файла ./PostProcessingDev.pl.
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);