如何在读取Excel文件时将当前目录作为路径名?

时间:2012-09-27 04:27:37

标签: perl excel

我正在尝试更新已存在的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 等。

1 个答案:

答案 0 :(得分:1)

根据我的发现,您可以使用getcwd()获取当前的工作目录。然后,您可以将其与$Excel->Workbooks->Open()中的文件名连接,以提供当前目录和文件名。

Source Link

说明:这里的基本问题是您将文件名传递给Excel,后者不知道Perl的当前工作目录。这就是为什么你必须找出完整的路径名并将其交给$Excel->Workbooks->Open()