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

Mic*_*ryl 15 import csv string microsoft-excel

我有一个将数据导出到 CSV 文件的 Web 应用程序。这是有问题的 CSV 文件的一个示例行:

28,"65154",02/21/2013 00:00,"false","0316295","8316012,8315844","MALE"
Run Code Online (Sandbox Code Playgroud)

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

我见过人们为这种情况推荐一个前导单引号,但这也不起作用。

28,"65154",02/21/2013 00:00,"false","'0316295","'8316012,8315844","MALE"
Run Code Online (Sandbox Code Playgroud)

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

导入似乎与打字不同。

有人在这里有解决方案吗?

Ale*_* P. 12

这应该工作

28,"65154",02/21/2013 00:00,"false",="0316295","=""8316012,8315844""","MALE"
Run Code Online (Sandbox Code Playgroud)

  • 更新了答案,以便它可以正确处理带逗号的值 (2认同)

Ell*_*esa 12

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

  1. 通过转到“数据”选项卡并单击“来自文本”来启动“文本导入向导”
  2. 选择要导入的 CSV 文件。
  3. 选择Delimited并点击Next
  4. 取消选中选项卡(默认)。选择逗号。确保文本限定符设置为"。点击下一步
  5. 您可以在此处指定格式。单击要保留其前导零的列的标题。选择文本。(见下图)

    在此处输入图片说明

  6. 点击完成,然后为您的数据选择一个合适的位置。示例结果:

    在此处输入图片说明

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


Chr*_*row 6

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

"=""Data Here"""
Run Code Online (Sandbox Code Playgroud)

这也适用于 Google 表格