写入Excel

时间:2017-11-16 20:00:57

标签: excel perl

我正在测试如何填写我的Excel工作表信息并编写一个简单的测试程序

use Win32::OLE qw(in);
use Win32::OLE::Const "Microsoft Excel";

$Win32::OLE::Warn = 3;

my $excel = Win32::OLE->new("Excel.Application", "Quit");
my $book = $excel->Workbooks->Add();
my $sheet = $book->Worksheets(1);
my $range = $sheet->Range($sheet->Cells(1,1), $sheet->Cells(5,5));

my $mat = $range->{Value};
$mat[1][1] = "x";
#for my $row (@$mat){
#   print "$i\n";
#   for my $cel (@{$row}){
#       $cel = "x";
#   }
#}

$range->{Value} = $mat;


my $fso = Win32::OLE->new("Scripting.FileSystemObject");
my $map = $fso->GetAbsolutePathName(".");
my $padnaam = $map . "\\test.xlsx";
$book->SaveAs($padnaam);

当我使用注释掉的代码时,有一个很好的正方形&#34; x&#34; s但是当我只是尝试通过索引分配x时,没有任何内容出现。 我猜测我没有正确引用数组,但在查看了perlreftut以及我能找到的关于2D数组的所有问题后,我无法确定应该使用的正确序列。< / p>

那么,如何通过索引向范围中添加值?

1 个答案:

答案 0 :(得分:1)

$ mat是一个数组引用。你需要取消引用它:

$$mat[1][1] = "x";