【发布时间】:2014-01-31 22:54:08
【问题描述】:
使用以下 perl 脚本,我尝试同时打开数据并将数据写入不同的 Excel 工作表。
虽然它有效,但我发现这种方法存在一些数据不一致问题。
即file1 的一些数据在 file2 中可见,反之亦然。
我对 Perl OLE 句柄没有清楚的了解。由于它对不同文件使用相同的 perl OLE 句柄,perl 是否将所有不同的文件视为一个?
如果是这样,如何避免这种情况?
perl Parser.pl C:\report1.xlsx
perl Parser.pl C:\report2.xlsx
perl Parser.pl C:\report3.xlsx
解析器.pl
use Win32::OLE qw(in with); # OLE Automation extensions
use Win32::OLE::Const 'Microsoft Excel'; # Extract constant definitions from TypeLib
unless (defined $Excel1) {
$Excel1 = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Oops, cannot start Excel";
}
$ReportFile = $ARGV[0];
# Open workbook
my $Book1 = $Excel1->Workbooks->Open($ReportFile);
{
#### WRTIE DATA INTO EXCEL ####
}
$Book1->Save;
$Book1->Close();
【问题讨论】: