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

9 投票
5 回答
4553 浏览
提问于 2025-04-15 20:43

我用Python生成了一个CSV文件。但是当我在Excel中打开这个文件时,Excel会自动把一些字符串识别成数字,如果它能转换的话。

比如说,33E105会变成33*10^105,其实这只是一个ID,并不是数字。

那我该怎么在打开CSV文件时让Excel不这样做呢?还是说我需要用一个excel-python库来输出一个Excel文件,并自己指定格式呢?

我还在网上找到一个类似的问题,但是没有找到好的答案。

谢谢!

5 个回答

3

你有三种选择:

  • 输出一个特别格式的XML文件,Excel可以读取。我记不清具体细节了,不过如果你感兴趣,我可以再找找。我们用Perl代码做过这个。我不确定excel-python是否也能做到这一点。

  • 在每个字符串前面加一个'(撇号)。

  • 使用一个库,能够输出格式正确的原生Excel文件。我不太确定Python有没有这样的库,但这其实是第一种选择的一个过于复杂的变体。

4

你可以在前面加一个单引号,这样就会把它当作文本来处理。

有个有趣的办法是,你可以把前面八行留空(它只会处理前八行来判断数据类型),不过我觉得这样可能会把你所有的数据都变成空的。你可以把那些空行隐藏起来。

1

如果你想在Python中写真正的 .xls 文件,而不是可能会被Excel误解的 .csv 文件,你可以使用一个叫做 xlwt 的第三方Python库。

撰写回答