【问题标题】:Export to .csv from APEX (Oracle Application Express) is suppressing some column values从 APEX(Oracle Application Express)导出到 .csv 会抑制某些列值
【发布时间】:2015-12-23 17:16:16
【问题描述】:

我使用 Oracle Application Express (APEX) 创建了一个交互式报表。问题是当下载到.csv 时,.csv 导出中的列(带有数字值的字符串格式)正在发生变化。例如,列值在交互式报表的屏幕上显示为123456789。但是,一旦将报告下载到.csv,该值就是123456780。它将最后一个值更改为“0”,但仅在导出时。我已经搜索了网络无济于事。这会自动发生(.csv 列根本没有格式化,只从 APEX 导出)。有谁知道为什么会这样?它是 APEX 错误吗??

【问题讨论】:

  • 能否提供源表定义?特别是该列的定义。它真的是 VARCHAR 或类似的,还是数字类型?当您将 CSV 文件作为文本文件查看,还是在电子表格 (Excel) 中查看时,是否存在此更改后的值?
  • 通过文本阅读器(上下文)查看 .csv 文件后,我可以看到该值是正确的,但使用 Microsoft Excel 打开文件时除外。因此,我现在知道问题不在于 Oracle APEX,而在于 Microsoft Excel。我需要弄清楚为什么 Excel 没有将所有值都视为文本(而不是将值转换为各种数据类型)。
  • 这个值真的包含10位数字吗?我记得,Excel 可以处理 14 位或 15 位数字,如果数字长度较高,Excel 会将其四舍五入(您会看到零)。您可以在数字前添加符号',Excel会将其视为字符串,而不是数字。

标签: oracle csv oracle-apex


【解决方案1】:

如果您的小数点分隔符是逗号,而不是“.”

也许 Excel 正在考虑将您用于分隔值的逗号作为小数位分隔符并将您的值向上取整:)

例如,像 123456789,99 这样的内容可能会四舍五入为 123456790

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    相关资源
    最近更新 更多