【问题标题】:Datatable long numbers showing exponential format after exporting csv导出 csv 后显示指数格式的数据表长数字
【发布时间】:2018-09-18 10:41:23
【问题描述】:

数据表导出到 csv 不能正常工作,导出的数据表的 csv 给出 7.15175E+14 而不是 715175180000591

【问题讨论】:

  • 你在看记事本里的文件吗?
  • @Nick.McDermaid 它在记事本上正确显示。
  • 所以导出正确。问题是您在 Excel 中打开它。那么...实际问题是什么?为什么它在 Excel 中以这种方式显示会出现问题?还是同一个号码

标签: excel csv datatable


【解决方案1】:

它是正确的。只需增加 csv 中列的宽度,就是这样,您的代码工作正常

//编辑

如果你使用的是 linux > libre office

 1. select the column -> right click-> format cells -> click on Number in the tab
 2. select text 
 3. click on ok

如果你使用的是windows,

  1. 点击列或选择记录
  2. 右键->选中区域->转换-​​>数据类型为->文本

【讨论】:

  • 我增加了宽度,但它仍然是指数格式。
  • 好的,那么问题是列的类型,你必须改变它,你的列精确到5位,所以它显示小数点后5位,只需改变类型
  • 列数据为字符串类型。
  • 在我的js代码中可以做什么,这样我就可以在csv中以文本格式获取数字
  • 你能显示你的代码 sn-p ,以便我可以建议你编辑
【解决方案2】:

.csv 文件包含长(>15 位)数字(如果您使用记事本打开 csv 文件),但是当您在 Excel 中打开 csv 文件时,您会看到它们被截断并转换为科学记数法,因为它绕过对话框,允许您在直接打开时选择列类型为文本。

您必须导入 csv 文件。当您这样做时,文本到列向导将打开,并允许您将该列格式化为文本。 Import的位置在不同版本中有所不同。在 Excel 2007 中,它位于 数据功能区,获取外部数据/从文本中。


如果您可以在将表格转换为csv之前更改表格的内容,您也可以通过以下方式进行操作。

  • 您还可以在数字末尾附加 TAB 字符 (ASCII 9)。
  • 导出到 csv 时,您可以自动在整数周围添加等号和双引号(例如:="9704322318673")。在 Excel 中打开 CSV 时,这将成为一个函数并仅显示数字。保存并重新导入时,您必须自动删除此列中的所有等号和双引号

【讨论】:

  • 您是否通过在记事本中打开它来检查它是否真的包含csv中的长整数?我怀疑这可能是转换本身截断了它。
  • 其实在Modal中,我声明为字符串类型。
  • @SidduBiradar 与您在模态中定义的数据类型无关。它与excel如何推断数据并表示它更相关。您是否通过在记事本中打开 .csv 来检查它?
  • 是的,我检查了兄弟,在记事本中打开它,它包含长整数。
  • 你需要比“不工作”更努力。休息一下,尽最大努力沟通问题。 1. 实际问题是什么?为什么在excel中以这种方式表示会出现问题; 2.请扩展“不工作”。这是对问题的无用描述
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
相关资源
最近更新 更多