2009-05-03 59 views
0

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

+0

这个问题太复杂了。你能否将问题简化为短代码片段并发布?或者至少链接到示例脚本和/或CPAN模块perldoc? – 2009-05-03 03:20:06

+1

同时发布在这里:http://www.mahalo.com/answers/programming/in-perl-the-xls2csv-function-from-spreadsheetxlsxutility2007-rounds-off-to-two-decimal-places-why – 2009-05-03 16:12:26

回答

1

我看到你可以通过PerlMonks get an answerfrieduck的帮助下(与friedo?有任何关系?),所以我将它连接起来以便SO人们的利益。

总而言之,基本上原来Spreadsheet::XLSX::Utility2007的内部在检索单元格值时自动应用2位小数位格式。提出的两种解决方法分别是:

  1. Changing the way the module generates cell types(使它们全部作为默认值)通过修改XLSX内部。
  2. Changing the way the module treats the cells loaded from the spreadsheet(将它们视为具有来自原始电子表格的未格式化值),也可以通过修改内部结构。

无论哪种方式,也有人提到,你可能是最好的方法是定义一个local子做执行修改后的行为,所以,有没有从到位更改模块产生的任何讨厌的惊喜。

相关问题