停止Excel自动将某些文本值转换为日期
有没有人碰巧知道是否有一个令牌可以添加到我的csv中,因此Excel不会尝试将其转换为日期?
我试图从我的应用程序中编写一个.csv文件,其中一个值恰好看起来像Excel自动将其从文本转换为日期的日期。 我已经尝试将所有文本字段(包括看起来像日期的文本字段)放在双引号内,但这没有任何作用。
我发现在双引号之前加上'='就可以实现你想要的。 它强制数据成为文本。
例如。 =“2008-10-03”,=“更多文字”
编辑(根据其他职位) :由于Jeffiekins指出的Excel 2007错误,应该使用Andrew提出的解决方案: "=""2008-10-03"""
我知道这是一个古老的问题,但问题不会很快消失。 CSV文件很容易从大多数编程语言中生成,而且非常小,用简单的文本编辑器就可以轻松读取,并且无处不在。
问题不仅在于文本字段中的日期 ,而且数字也会从文本转换为数字。 几个例子,这是有问题的:
它有时可以以一个或多个零(0)开始,当转换为数字时它会被丢弃。 或者该值包含可与数学运算符混淆的字符(如日期)。
如前所述,我可以想到的两种情况是“prepending =”解决方案可能并不理想
我的解决方法是解决这个问题
如果在值中预先/附加了非数字和/或非日期字符,则该值将被识别为文本并且不会被转换。 非打印字符会很好,因为它不会改变显示的值。 但是,普通的旧空格字符( s,ASCII 32)不能用于此目的,因为它被Excel截断,然后该值仍然被转换。 但还有其他各种印刷和非印刷空间字符都能很好地工作。 最简单的方法是追加(添加)简单的制表符( t,ASCII 9)。
这种方法的好处:
另外一个选择
可能会生成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