我正在使用Excel :: Writer :: XLSX perl模塊導出到Excel。除了大量出口需要很長時間外,它工作得很好。但是,當我添加$ workbook-> set_optimization();我只在我的.xlsx文件中獲得數字數據。Excel :: Writer :: XLSX set_optimization()只寫入數值數據
我曾嘗試使用$ worksheet-> write()和$ worksheet-> write_string(),但任何具有字符串而不是數字的字段在使用$ workbook-> set_optimization時不會被導出();
如果我使用舊的電子表格:: WriteExcel模塊它工作得很好,但出口的文件大小是大得多,24MB與7MB
這裏是代碼創建的標題行:
# Create a new workbook
my $workbook = Excel::Writer::XLSX->new($file_path);
$workbook->set_optimization();
my $worksheet = $workbook->add_worksheet();
# insert the header row
my $header_cnt = 0;
foreach my $header_cell (@header_values){#loop through each header column and add it to the sheet
# print $header_cell." - ".$header_cnt."\n";
# $worksheet->write_string("0", $header_cnt, "test");
$worksheet->write_string("0", $header_cnt, $header_cell);
$header_cnt++;
}
$workbook->close() or die "Error closing file: $!";
感謝您的快速回復。我複製你的代碼並運行它,只有數字出現在輸出中。當我註釋掉set_optiomization();然後我得到所有的數據(數字和字符串)。 – nickradford 2013-02-14 16:24:34
你用什麼來查看輸出文件?我沒有購買截圖。數據確實顯示在Excel中。 :-) – jmcnamara 2013-02-14 16:25:17
我一直在OS X上使用Numbers來查看這些文件。但是,我只是在Windows上的Excel中打開該文件,並且數據都在那裏。 – nickradford 2013-02-14 16:28:25