我有一个 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
为了保留前导零,您可以在文本导入向导中将该特定列的格式设置为文本。
- 启动文本导入向导通过前往数据标签和单击来自文本。
- 选择要导入的 CSV 文件。
- 挑选分隔符& 打下一个。
- 取消选中标签(默认)。选择逗号。 确保文本限定符设置为
"
。点击下一个。 您可以在此处指定格式单击要保留前导零的列的标题。选择文本(见下图)
打结束然后为您的数据选择一个合适的位置。示例结果:
编辑:还有另一种方法; 让 Web 应用导出为逗号分隔的 .TXT 文件而不是 .CSV 文件(或者在保存导出文件后更改其文件扩展名)。这会强制 Excel 在打开文件时通过导入向导。作为额外的优势,它减少了用户修改或篡改原始数据的机会。
答案3
Excel 将自动检测 CSV 字段的格式,除非 CSV 列采用以下格式:
"=""Data Here"""
这也适用于 Google 表格
答案4
您必须使用 Excel 中的“数据 -> 获取外部数据 -> 从文件导入文本”功能才能将其显示为文本。这是 @Kaze 提到的文本导入向导。
强制 excel 将输入的数字显示为文本的唯一方法是输出 excel 文件并在其中指定“自定义数字格式”,而无需用户执行任何操作。我建议为此使用 XLS 导出库,因为它看起来并不像在 CSV 文件中添加一行配置文本那么简单。