我仍在學習Perl,並且正在嘗試執行以下任務 - 並且很悲慘地卡住了。Perl如何在Excel文件中操作多個工作表?
目前我有以下。
- 打開必要的Excel文件
- 存儲工作簿的下VAR信息
$workbook1
- 商店工作表下的VAR
$worksheets1
my $excel = Win32::OLE -> new("Excel.Application");
$excel->{Visible} = 0;
$excel->{DisplayAlerts}=0;
$excel->{SheetsInNewWorkbook} = 1;
my $workbook1 = $excel->Workbooks->Open($OutFileName);
my $worksheet1 = $workbook1->Worksheets(1);
信息後,我利用這個信息,並有Perl寫入Excel文件的單元格中(必要的相應地初始化和$Col
)。
$worksheet1->Cells($Row, $Col)->{'Value'} = $var1;
$worksheet1->Cells($Row, $Col+1)->{'Value'} = $var2;
$worksheet1->Cells($Row, $Col+2)->{'Value'} = $var3;
$worksheet1->Cells($Row, $Col+3)->{'Value'} = $var4;
到目前爲止,這工作正常。 我打算做的是在多個工作表上操作,而不是一個。
- 打開必要的Excel文件 下變量$ workbook1
- 商店Wortsheets下VAR(S)$ worksheets1,$ worksheets2,$ worksheets3,$ worksheets4,$ worksheets5信息(或存儲
- 存儲工作簿的信息如果可能,它變成一個數組?)
我總共有5個工作表,我需要在Excel文件中進行操作。我試圖爲每個工作表循環後面的過程(在單元格中寫),但我試圖找到一個更簡單的方法來調用$ worksheet1,$ worksheet2,...,$ worksheet5變量。 Cuz,現在沒有適當的數組變量 - 我還沒有學會如何在Perl中 - 我需要爲每個循環做一個if語句並編寫相應的代碼,這是非常無效的。有沒有辦法用數組或其他工作表變量執行此操作?
我更熟悉Matlab是如何工作的......這裏是我想讓Perl做的事情,如果它是一個帶有數組的Matlab腳本。
for i = 1:num_worksheets
# write in worksheet[i] cell (j,k) with variable var1
end
這個問題只是「*如何在Perl中使用數組?」? – melpomene
使用數組我知道了,但是在使用excel命令實現它時會發生奇怪的錯誤。我想知道是否有一個不同的方式來使用該數組與excel命令如何工作 –
你的代碼是什麼?什麼是錯誤? – melpomene