我的 CSV 文件中有一个列,其中包含一串用逗号分隔的数字。即使我想将其视为文本,Excel 也会不断将它们转换为数字。
例子:
470,1680 get converted to 4,701,680
但是,我希望它保持为 470,1680
我尝试将单元格格式化为文本,但这会删除原始逗号。我怎样才能做到这一点?
将 .CSV 文件重命名为 .TXT 文件。用 Excel 打开文件,会弹出文本导入向导。告诉 Excel 它是一个分隔文件,并且逗号是分隔符。然后,Excel 将为您提供一个屏幕,允许您为每列分配格式。选择相关列的文本格式。导入就完成了!
为了测试这一点,我创建了以下 .CSV 文件:
test1,"470,1680",does it work
test2,"120,3204",i don't know
直接在 Excel 中打开 CSV 时,我得到以下信息:
test1 4,701,680 does it work
test2 1,203,204 i don't know
使用我的方法打开时,我得到了这个:
test1 470,1680 does it work
test2 120,3204 i don't know
这不是想要的结果吗?
我发现有效的是:
="12345678901349539725", "CSV value2", "Another value"
这里的关键是这个值是一个包含="{Number}"
. 不知何故,Excel 尊重这种模式。
也许它可以更好地写成
"="12345678901349539725""
但是不要对代码中的引号感到疯狂。
如果您可以操作 CVS 文件,请将 ' 放在每个数字的前面
好的...所以,该文件使用回车+换行符来描述新记录的开始。它还(由于我不明白的原因)在随机位置的每条记录中都有换行符 - 但没有回车。
为了解决这个问题,我用 Notepad++ 打开了文件,并使用“扩展”搜索模式进行了查找和替换。我什么都换\n
了。数据现在使用我之前推荐的解决方案在 Excel 中正确打开。
当然,您可以使用任何其他程序(不仅仅是 Notepad++)来进行这种字符替换。这有帮助吗?
在 DocNumber 实际上是文本的地方试试这个: Select (CHAR(10)+DocNumber) AS DocNumber
也就是说,通过添加一个不可见的文本字符,它会欺骗 Excel 使其成为文本字符串。您也可以使用 CHAR(32)。