我正在尝试更新已存在的Excel文件“Test.xls”现在,我想知道如何从当前目录中读取Test.xls文件,而不是提供Test.xls文件的完整路径。我在Windows环境中使用Eclipse。以下是我的代码:
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
my $Book = $Excel->Workbooks->Open("Test.xls"); #This line throws an error but works if I give complete path name as D:/eclipse/workspace/testing/Test.xls
my $Sheet = $Book->Worksheets(1);
foreach my $data (@ifrules)
{
$Sheet->Cells($row,$col)->{'Value'} =$data;
$row++;
}
$Book->Close;
我尝试了各种选项,例如 ./ Test.xls,。\ Test.xls 等。
答案 0 :(得分:1)
根据我的发现,您可以使用getcwd()
获取当前的工作目录。然后,您可以将其与$Excel->Workbooks->Open()
中的文件名连接,以提供当前目录和文件名。
说明:这里的基本问题是您将文件名传递给Excel,后者不知道Perl的当前工作目录。这就是为什么你必须找出完整的路径名并将其交给$Excel->Workbooks->Open()
。