为什么Spreadsheet :: XLSX :: Utility2007的xls2csv四舍五入到小数点后两位?

时间:2009-05-03 01:08:54

标签: perl excel csv decimal rounding

我正在编写一个Perl / Tk脚本,它使用Spreadsheet :: Read模块中的ss2tk示例脚本显示Excel工作表。它不会舍入两位小数,但Spreadsheet::XLSX::Utility2007的函数会四舍五入到小数点后两位。为什么?我正在尝试将第二个功能用作我程序的一项功能,以便将显示的工作表转换为CSV文件。

1 个答案:

答案 0 :(得分:2)

我看到你能够get an answerfrieduck(与friedo的任何关系?)的帮助下Spreadsheet::XLSX::Utility2007结束,所以我为了SO的利益而将其链接起来乡亲。

总而言之,基本上可以看出Changing the way the module generates cell types的内部在检索单元格值时会自动应用2位小数格式。提出的两个解决方法是:

  1. Changing the way the module treats the cells loaded from the spreadsheet(通过修改XLSX内部使其将所有内容视为默认值)。
  2. {{3}}(将它们视为原始电子表格中未格式化的值),也可以通过修改内部结构。
  3. 无论哪种方式,还提到你最好定义一个local子来执行修改后的行为,这样就不会因为更改模块而产生任何令人讨厌的意外。