如何将包含长数字的Excel列保存为CSV文件?

18
当我想保存类似下面这样的Excel列中的长数字时,生成的csv文件会将数字转换为科学计数法,这是无法使用的。我希望它们以文本形式保存。有什么技巧可以做到这一点吗?
28160010390002003505456159  
12160010390002003505456156  
39160010390002003505456155  
39160010390002003505456155  

1
将列格式化为文本。 - dav1dsm1th
3
在值前加上 ' 符号。 - Tim Williams
@TimWilliams,你的回复对我很有帮助,谢谢。 - Anil Kumar
9个回答

38
在数字末尾添加一个TAB字符(ASCII 9)。

2
这是我找到的解决此问题的最佳方案。 - dumduke
2
如果CSV是从SQL生成的,您可以像这样做:SELECT CONCAT(field, "\t") AS "field" FROM table - tharkay
2
很挑剔,当用户复制单元格时,他们将看到TAB字符。 - xianshenglu
有点挑剔,当用户复制单元格时,他们会看到TAB字符。 - xianshenglu
你能解释一下为什么吗? - Lei Yang

11
为了在Excel中使用那些超过15位数字,它们已经被格式化为文本。我怀疑.csv文件也显示为长数字(如果你用记事本打开csv文件),但是当你在Excel中打开csv文件时,你会看到它们被截断并转换为科学计数法。
如果是这种情况,您需要做的是导入csv文件。这样做后,文本到列向导将会打开,并允许您将该列格式化为文本。导入位置因版本不同而异。在Excel 2007中,它在数据选项卡上,获取外部数据/从文本获取。 enter image description here enter image description here

谢谢!现在它运行得很好。之前不知道有“从文本”按钮。 - Zulu Z
很高兴能帮忙。由于某种原因,即使数字被双引号包围,Excel(使用文件打开方法)仍然会尝试将值解释为数字。导入方法是控制这一点的方法。 - Ron Rosenfeld
8
他说“保存一个CSV”,这是关于导入的内容。不是。 - buildmaestro
@buildmaestro 没错。答案解决了实际遇到的问题,而不是你认为的问题。这就是为什么它被接受了。 - Ron Rosenfeld

11
将数字作为函数放置如下: ="123456789123456789"

2
我猜这是正确的视觉呈现的最佳解决方案,但如果你要从CSV文件中解析数据,它可能会让你头疼。 - yolo sora

10
如果像原始问题所暗示的那样,您已经在Excel中处理了数据,并且想要保存为CSV格式但不丢失超长数字中的位数,则在进行“另存为”到CSV格式之前,请尝试使用自定义格式对列进行格式化,在模式框中只输入#字符。这将强制Excel将其视为数字,无论有多少位数,而不会在将其保存到CSV时尝试执行其他操作,例如将4.52364E + 14转换成其他形式。至少,在当前Excel 365版本中是如此。如果您试图从CSV中将数据导入Excel,则使用数据导入向导可能是最安全的选择。

也适用于Excel 2013。 - user176692

6
这是一个旧问题,但由于目前在谷歌搜索中仍然是该主题的最佳结果,我认为该帖子应保持最新状态。Hussein mahyoub提供了唯一真正的答案,但没有得到赞同。
告诉我们在数字后面添加制表符的答案会在Excel中产生一个带有制表符的文本字符串。视觉上看起来正确,但在电子表格中不正确。如果意图是将数据用作Excel数据并使用公式等,可能会引起问题。有趣的是,如果将制表符放在文本之前,它会显示在文本之后的数据中。
告诉我们在文本前插入一个'的答案会在Excel文件中得到一个'。这是数据的视觉不正确表示。
吹嘘OpenOffice优点的答案只是一个邪恶的喷子,甚至没有试图回答问题。
解释如何导入未经适当格式化的CSV的答案是好信息,但与主题无关。
直接回答问题的答案是:
converted to text,largest number
="123456789012",12345678901

1
我发现这个问题正是我试图解决的问题。问题的具体细节不太清楚。既然这是stackoverflow,我的假设是这个问题不是最终用户试图弄清如何使用Excel输出数据的问题。作为开发人员,我需要手动创建文件。如果你是一个程序员生成文件,这是我找到的最好的方法来完成这个任务。根据我对问题的理解,大多数答案都离题了。 - Dwight Wilbanks
这是我个人认为标题问题的正确答案。 - muttonUp

2
使用文本函数将数字转换为文本。
Text(number,"0")

当数字超过15位时,它无法正常工作。https://answers.microsoft.com/en-us/msoffice/forum/all/numbers-in-csv-file-longer-then-15-digit-are-lost/8d779cc3-2f16-4bda-bbd0-9c4edcf2549b - Kevin Xiong

1
不要使用Excel中的“导出为csv”功能。
您可以在Excel中轻松将该列格式化为数字,然后使用“另存为”以csv格式保存,并“是”确认您要在csv中保留格式。
这对我很有效。 输入图像描述 输入图像描述

0
使用OpenOffice,您可以轻松保存为CSV格式。

0

点击具有科学指数数字的列,然后转到“单元格格式”和“数字”(小数点为0),将其保存为MSDOS CSV格式。对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接