我使用Python生成CSV文件。但是当我在Excel中打开它时,如果可以转换,Excel会自动将字符串识别为数字。
例如33E105
变为33*10^105
,实际上是ID,而不是数字。
如何在打开CSV文件时在Excel中禁用此功能?或者我需要求助于excel-python库来输出excel文件并自己指定格式?
我还在网上找到了similar question没有好的答案。
谢谢!
答案 0 :(得分:4)
你可以在它前面加上一个引号,强制它发短信。
一个有趣的答案是你可以将前八行留空(它只处理前八行以确定数据类型),尽管我认为这可能会完全清空所有数据。你可以隐藏那些空行。
答案 1 :(得分:3)
您有3个选项:
输出Excel可以读取的特殊格式的XML文件。我不记得任何细节,但如果有兴趣,我可以挖掘它们。我们使用Perl代码完成了这项工作。我不知道excel-python是否就是这样。
在每个字符串前放置'
(撇号)。
使用能够以正确格式输出本机Excel文件的库。不知道Python是否存在,但在任何情况下它都是第一种选择的过度变种。
答案 2 :(得分:2)
我认为您可以在前面添加一个'
来阻止数字字符串转换为整数
例如
...,"'33E105",...
OpenXML是一个更灵活(和复杂)的选项,但只适用于Office2003或更新版本,并且对此问题来说太过分了。更适合需要突出显示单元格/多页等的情况
答案 3 :(得分:1)
要在Python中编写实际的.xls
文件,而不是Excel可能会误解的.csv
个文件,您可以使用xlwt第三方Python包。
答案 4 :(得分:0)
如果您不想更改编写CSV文件的方式,可以使用Excel中的“文本导入向导”指定您希望如何处理各个列。向导中有一个步骤可让您选择每列中的数据类型。将您想要的列设置为Text,它会将其视为字符串。