我正在编写一个 Perl/Tk 脚本,它使用 Spreadsheet::Read 模块中的 ss2tk 示例脚本显示 Excel 工作表。它不会四舍五入两位小数,但来自Spreadsheet::XLSX::Utility2007的函数确实四舍五入到两位小数。为什么?我正在尝试将第二个功能用作我的程序的一个功能,以提供将显示的工作表转换为 CSV 文件的功能。
问问题
1217 次
1 回答
2
我看到您能够在 Frieduck 的帮助下在PerlMonks上得到答案(与friedo有任何关系吗?),所以我将它联系起来是为了让人们受益。
总而言之,基本上事实证明, Spreadsheet::XLSX::Utility2007的内部在检索单元格值时会自动应用 2 位小数位格式。提出的两种解决方法是:
- 通过修改 XLSX 内部结构来更改模块生成单元类型的方式(使其将它们全部视为默认值)。
- 更改模块处理从电子表格加载的单元格的方式(将它们视为具有原始电子表格中的未格式化值),也可以通过修改内部结构。
无论哪种方式,还提到您最好定义一个local
sub 来执行修改后的行为,这样就不会因更改模块而导致任何令人讨厌的意外。
于 2009-10-01T12:52:06.847 回答