我在Spreadsheet::WriteExcel和使用VLOOKUP
的公式中遇到了問題。以下測試腳本使用一些數據填充工作表並嘗試創建VLOOKUP
公式。當我打開生成的Excel文件時,公式結果顯示爲#VALUE!
。如果我手動編輯任何包含公式的單元格(按F2,然後按ENTER鍵而不更改任何內容),我可以使用Excel來正確評估公式。任何想法出了什麼問題?如何獲得Perl的Spreadsheet :: WriteExcel以使用VLOOKUP創建公式?
對於什麼是值得的,如果我在OpenOffice中打開相同的文件,公式工作正常。
use strict;
use warnings;
use Spreadsheet::WriteExcel;
my $wb = Spreadsheet::WriteExcel->new('foo.xls');
my $ws = $wb->add_worksheet;
for my $r (0 .. 9){
for my $c (0 .. 4){
$ws->write($r, $c, $r * 10 + $c);
}
$ws->write($r, 10, $r * 10);
my $formula = sprintf('=VLOOKUP(K%s, A1:B10, 2, FALSE)', $r + 1);
$ws->write($r, 11, $formula);
# $ws->write_formula($r, 11, $formula); # Does not help either.
}
版本信息:
- 的Excel 2007 SP2。
- Spreadsheet :: WriteExcel:試過2.25和2.37。
您使用的是什麼版本的'Spreadsheet :: WriteExcel'?您的代碼在OSX上使用Excel在2.25中正常工作。可能只是你的Excel安裝? – 2010-02-09 19:34:03
確實調用了write_formula而不是寫入工作? – ysth 2010-02-09 20:00:17
@ysth和@Jack M.好主意,但沒有運氣。我使用版本信息編輯了問題。 – FMc 2010-02-09 21:00:48