1

配列の配列にある値の範囲を、Excel スプレッドシートのセルの範囲に追加したいと考えています。私は次のように書きましたが、失敗します:

use Win32::OLE;
use Cwd;

eval {$excel = Win32::OLE->GetActiveObject('Excel.Application')};
die "Excel not installed" if $@;
unless (defined $excel) 
{
    $excel = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
    or die "Oops, cannot start Excel";
}

$workbook = $excel->Workbooks->Open(getcwd() . "/test.xlsx");
$worksheet = $workbook->Worksheets(1);
@matrix = ( [0, 1], [2, 3] );

$worksheet->Range("B5:C6")->{Value} = @matrix;

$worksheet->Save;

上記のコードは、セル B5:C6 を (0, 1, 2, 3) ではなく (2, 2, 2, 2) で更新しますが、この理由がわかりませんでした...何が間違っているのか?

4

2 に答える 2