【问题标题】:Why does Spreadsheet::XLSX::Utility2007's xls2csv round off to two decimal places?为什么Spreadsheet::XLSX::Utility2007 的xls2csv 四舍五入到小数点后两位?
【发布时间】:2009-05-03 01:08:54
【问题描述】:

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

【问题讨论】:

  • 这个问题太复杂了。您可以将问题简化为短代码 sn-p 并发布吗?或者至少链接到示例脚本和/或 CPAN 模块 perldoc?
  • 也在这里发布:mahalo.com/answers/programming/…
  • 你问模块的作者了吗?

标签: perl excel csv decimal rounding


【解决方案1】:

我看到你可以在 frieduck 的帮助下在 PerlMonks 上 get an answer (与 friedo 有任何关系吗?),所以我将它链接起来是为了让人们受益。

总而言之,基本上事实证明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 子来执行修改后的行为,这样就不会因更改模块而导致任何令人讨厌的意外。

【讨论】:

  • 看来frieduck与friedo有没有关系。
猜你喜欢
  • 1970-01-01
  • 2022-01-02
  • 2014-06-03
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
相关资源
最近更新 更多