2017-11-16 12 views
0

への書き込み、私は私がコメントアウトコードを使用する場合は、「X」の素敵な広場があり、私の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); 

を書いていますしかし、インデックスでxを代入しようとすると、何も表示されません。 私は配列を正しく参照していないと推測していますが、perlreftutと2次元配列に関するすべての質問を見てから、代わりに使用されるべき正しい配列を理解することはできません。

インデックスに値を追加するにはどうすればよいですか?

答えて

1

$ matは配列リファレンスです。参照を解除する必要があります:

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

ありがとうございました。あなたがそれを言うときは論理的ですが、$、@、{}の無作為な文字列をより多く強制してしまったような気がします。 – turoni