如何阻止Excel将值为10-3的值格式化为日期?

时间:2017-03-24 17:16:09

标签: excel date csv formatting

我有一个用于创建CSV文件的Python脚本,其中一个列的值为4-10, 10-0, etc

当我在Excel中打开CSV时,它会将这些值格式化为日期,例如4-Oct。当我转到Format Cells并将类型更改为Text时,会将4-10更改为43012

阻止这种情况的最简单方法是什么?

2 个答案:

答案 0 :(得分:3)

将数据导入Excel时,请告诉导入向导该字段为文本

enter image description here

答案 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))

在文本编辑器中生成以下文件:

enter image description here

通过在Excel中双击打开时:

enter image description here