我有一个用于创建CSV文件的Python脚本,其中一个列的值为4-10, 10-0, etc
。
当我在Excel中打开CSV时,它会将这些值格式化为日期,例如4-Oct
。当我转到Format Cells
并将类型更改为Text
时,会将4-10
更改为43012
。
阻止这种情况的最简单方法是什么?
答案 0 :(得分:3)
答案 1 :(得分:1)
我倾向于在可能的情况下处理输入,在这种情况下,如果您可以控制python脚本,最好只修改那个,以便Excel'默认行为以所需方式解释文件。
借用this similar question with a million upvotes,您可以修改您的python脚本以包含非打印字符:
output.write('"{0}\t","{1}\t","{2}\t"\n'.format(value1, value2, value3))
这样,您可以轻松双击打开文件,内容将被视为文本,而不是解释为数字/日期值。
这样做的好处是其他用户不必记住使用该向导,并且处理混合数据也可能更容易。
示例:
def writeit():
csvPath = r'c:\debug\output.csv'
a = '4-10'
b = '10-0'
with open(csvPath, 'w') as f:
f.write('"{0}\t","{1}\t"'.format(a,b))
在文本编辑器中生成以下文件:
通过在Excel中双击打开时: