Excel CSV 导入将数字的引号字符串视为数字值,而不是字符串

Excel CSV 导入将数字的引号字符串视为数字值,而不是字符串

我有一个 Web 应用程序正在将其数据导出到 CSV 文件。以下是相关 CSV 文件的一个示例行:

28,"65154",02/21/2013 00:00,"false","0316295","8316012,8315844","MALE"

由于我无法发布图片,因此我必须解释 Excel 中的结果。“0316295”字段变成了数字,前导 0 消失了。“8316012,8315844”被解释为一个数字:83,160,128,315,844。这显然不是预期的结果。

我见过有人建议在这种情况下使用前导单引号,但这实际上也不起作用。

28,"65154",02/21/2013 00:00,"false","'0316295","'8316012,8315844","MALE"

单引号在 Excel 单元格中始终可见,但如果我自己输入一个以单引号为前导的数字,它只会显示预期的字符串,而不是带有字符串的单引号。

看起来,导入与打字不一样。

有人有解决方案吗?

答案1

这应该有效

28,"65154",02/21/2013 00:00,"false",="0316295","=""8316012,8315844""","MALE"

答案2

为了保留前导零,您可以在文本导入向导中将该特定列的格式设置为文本。

  1. 启动文本导入向导通过前往数据标签和单击来自文本
  2. 选择要导入的 CSV 文件。
  3. 挑选分隔符& 打下一个
  4. 取消选中标签(默认)。选择逗号。 确保文本限定符设置为"。点击下一个
  5. 您可以在此处指定格式单击要保留前导零的列的标题。选择文本(见下图)

    在此处输入图片描述

  6. 结束然后为您的数据选择一个合适的位置。示例结果:

    在此处输入图片描述

编辑还有另一种方法; 让 Web 应用导出为逗号分隔的 .TXT 文件而不是 .CSV 文件(或者在保存导出文件后更改其文件扩展名)。这会强制 Excel 在打开文件时通过导入向导。作为额外的优势,它减少了用户修改或篡改原始数据的机会。

答案3

Excel 将自动检测 CSV 字段的格式,除非 CSV 列采用以下格式:

"=""Data Here"""

这也适用于 Google 表格

答案4

您必须使用 Excel 中的“数据 -> 获取外部数据 -> 从文件导入文本”功能才能将其显示为文本。这是 @Kaze 提到的文本导入向导。

强制 excel 将输入的数字显示为文本的唯一方法是输出 excel 文件并在其中指定“自定义数字格式”,而无需用户执行任何操作。我建议为此使用 XLS 导出库,因为它看起来并不像在 CSV 文件中添加一行配置文本那么简单。

相关内容