停止Excel自动将某些文本值转换为日期

有没有人碰巧知道是否有一个令牌可以添加到我的csv中,因此Excel不会尝试将其转换为日期?

我试图从我的应用程序中编写一个.csv文件,其中一个值恰好看起来像Excel自动将其从文本转换为日期的日期。 我已经尝试将所有文​​本字段(包括看起来像日期的文本字段)放在双引号内,但这没有任何作用。


我发现在双引号之前加上'='就可以实现你想要的。 它强制数据成为文本。

例如。 =“2008-10-03”,=“更多文字”

编辑(根据其他职位) :由于Jeffiekins指出的Excel 2007错误,应该使用Andrew提出的解决方案: "=""2008-10-03"""


我知道这是一个古老的问题,但问题不会很快消失。 CSV文件很容易从大多数编程语言中生成,而且非常小,用简单的文本编辑器就可以轻松读取,并且无处不在。

问题不仅在于文本字段中的日期 ,而且数字也会从文本转换为数字。 几个例子,这是有问题的:

  • ZIP /邮政编码
  • 电话号码
  • 政府身份证号码
  • 它有时可以以一个或多个零(0)开始,当转换为数字时它会被丢弃。 或者该值包含可与数学运算符混淆的字符(如日期)。

    如前所述,我可以想到的两种情况是“prepending =”解决方案可能并不理想

  • 该文件可能被导入到MS Excel以外的程序中(想起MS Word的邮件合并功能),
  • 人的可读性可能很重要。
  • 我的解决方法是解决这个问题

    如果在值中预先/附加了非数字和/或非日期字符,则该值将被识别为文本并且不会被转换。 非打印字符会很好,因为它不会改变显示的值。 但是,普通的旧空格字符( s,ASCII 32)不能用于此目的,因为它被Excel截断,然后该值仍然被转换。 还有其他各种印刷和非印刷空间字符都能很好地工作。 最简单的方法追加(添加)简单的制表符( t,ASCII 9)。

    这种方法的好处:

  • 可从键盘或易于记忆的ASCII码(9)获得,
  • 它不会打扰进口,
  • 通常不会打扰邮件合并结果(取决于模板布局 - 但通常它只是在一行的末尾添加一个宽的空间)。 (如果这是一个问题,请查看其他字符,例如零宽度空间(ZWSP,Unicode U + 200B)
  • 在记事本(等)中查看CSV时不是一个很大的障碍,
  • 并可以通过查找/替换Excel(或记事本等)中删除。
  • 您不需要导入CSV,但只需双击即可在Excel中打开CSV。
  • 另外一个选择

    可能会生成XML文件,对于这些文件,某些格式也可以通过更新的MS Excel版本进行导入,并且允许更多类似于.XLS格式的选项,但我没有这方面的经验。

    所以有各种选择。 根据您的要求/应用程序,可能会比另一个更好。


    加成

    需要说的是,MS Excel的更新版本(2013+)不再以电子表格的格式打开CSV - 在工作流程中多出一个速度缓冲区,使Excel变得不那么有用......至少有指导说明。 看到例如这个Stackoverflow:如何在Excel 2013中正确显示.csv文件? 。


    根据Joard的解决方案和Jeffiekins提出的问题,您可以修改

    "May 16, 2011"
    

    "=""May 16, 2011"""
    
    链接地址: http://www.djcxy.com/p/45473.html

    上一篇: Stop Excel from automatically converting certain text values to dates

    下一篇: What is the meaning of "vnd" in MIME types?