use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new( 'Excel.Application', 'Quit' );
my $book = $Excel->Workbooks->Open('Template.xlsx');
# write to a particular cell
$sheet = $book->Worksheets(1);
$sheet->Cells( 1, 1 )->{Value} = "MyData";
# save and exit
$book->SaveAs('UpdatedTemplate.xlsx');
undef $book;
undef $Excel;
请在下面找到我的要求
Template.xlsx
档案UpdatedTemplate.xlsx
文件的问题:
UpdatedTemplate.xlsx
未生成。UpdatedTemplate.xls
x文件。有时它会显示消息" UpdatedTemplate.xlsx已存在于此位置。你想替换它吗?",但是如果我说是的话就不会生成文件。答案 0 :(得分:1)
如果你没有在SaveAs('UpdateTemplate.xlsx')中给出完整路径,那么默认情况下它将保存在windows的Documents文件夹中。你可以自己检查一下。因此,最好在方法open和saveas中给出绝对路径
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
my $book = $Excel->Workbooks->Open('D:\Perl\Template.xlsx');
# write to a particular cell
$sheet = $book->Worksheets(1);
$sheet->Cells(1,1)->{Value} = "MyData";
# save and exit
$book->SaveAs('D:\Perl\UpdatedTemplate.xlsx');
$book-> close;