在 Excel 中打开 CSV 文件会损坏电话号码列

在 Excel 中打开 CSV 文件会损坏电话号码列

我将列表视图数据导出到 csv 文件。其中有一列“联系人号码”。此列的数据类型为 MS Access 中 20 个文本字段大小。使用记事本打开此 csv,它显示实际数据值 12345678901234567890。但使用 MS Excel 打开它,它显示 12345678901234500000。:O

为什么最后 5 个字符全部变为零?在 Excel 中,我将此列重新格式化为“自定义”或“数字”类别格式。之后,它显示 12345678901234500000。如果不重新格式化,通常会显示 1.23457E+19。

答案1

一个建议是在将数据导出为 CSV 格式时在数字前面加上撇号。因此不要使用12345678901234567890export '12345678901234567890

答案2

Excel 将数据视为浮点数,可以将其近似为 1.23457E+19。

浮点数不能提供 20 位的精度。

这是浮点数的一个限制。请参阅这一页

答案3

首先,您不想将其视为数字,因为 0123 会变成 123,这是一个完全不同的电话号码。导出时将值括在双引号中应该足以让 Excel 将该列视为文本。

我过去注意到 Excel 对 CSV 导入过程的控制很少,因此根据您的要求,您可以考虑使用 VBA 来更好地控制导入,或对 CSV 进行后期处理,或者使用 Open Office。

答案4

根据我的实验,Excel 将自动检测 CSV 字段的格式,除非你像这样指定

="Data Here"

20,       5.5%,      "0404 123 351", "3-6",  ="123"
[number]  [percent]  [number]        [date]  [string]  <-- how Excel interprets

但是我不确定 MS Access 将如何解释上述字段。

相关内容