如何禁用Excel自动识别数字和文本

时间:2010-03-23 01:35:16

标签: python excel

我使用Python生成CSV文件。但是当我在Excel中打开它时,如果可以转换,Excel会自动将字符串识别为数字。

例如33E105变为33*10^105,实际上是ID,而不是数字。

如何在打开CSV文件时在Excel中禁用此功能?或者我需要求助于excel-python库来输出excel文件并自己指定格式?

我还在网上找到了similar question没有好的答案。

谢谢!

5 个答案:

答案 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,它会将其视为字符串。