我正在使用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