9

我的 CSV 文件中有一个列,其中包含一串用逗号分隔的数字。即使我想将其视为文本,Excel 也会不断将它们转换为数字。

例子:

470,1680 get converted to 4,701,680

但是,我希望它保持为 470,1680

我尝试将单元格格式化为文本,但这会删除原始逗号。我怎样才能做到这一点?

4

5 回答 5

7

将 .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

这不是想要的结果吗?

于 2014-01-03T17:11:49.843 回答
5

我发现有效的是:

="12345678901349539725", "CSV value2", "Another value"

这里的关键是这个值是一个包含="{Number}". 不知何故,Excel 尊重这种模式。

也许它可以更好地写成

"="12345678901349539725"" 

但是不要对代码中的引号感到疯狂。

于 2018-04-19T14:00:15.803 回答
2

如果您可以操作 CVS 文件,请将 ' 放在每个数字的前面

于 2014-01-03T17:08:35.913 回答
0

好的...所以,该文件使用回车+换行符来描述新记录的开始。它还(由于我不明白的原因)在随机位置的每条记录中都有换行符 - 但没有回车。

为了解决这个问题,我用 Notepad++ 打开了文件,并使用“扩展”搜索模式进行了查找和替换。我什么都换\n了。数据现在使用我之前推荐的解决方案在 Excel 中正确打开。

当然,您可以使用任何其他程序(不仅仅是 Notepad++)来进行这种字符替换。这有帮助吗?

于 2014-01-03T18:32:30.407 回答
0

在 DocNumber 实际上是文本的地方试试这个: Select (CHAR(10)+DocNumber) AS DocNumber

也就是说,通过添加一个不可见的文本字符,它会欺骗 Excel 使其成为文本字符串。您也可以使用 CHAR(32)。

于 2021-10-12T20:53:36.960 回答