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

时间:2020-03-06 15:03:20  来源:igfitidea点击:

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

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

解决方案

如果在字段的开头放置一个逗号,它将被解释为文本。

例子:
25/12 / 2008变为'25 / 12 / 2008

导入时,我们还可以选择字段类型。

我发现,在双引号前放置'='可以完成我们想要的操作。它将数据强制为文本。

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

编辑(根据其他帖子):由于Jeffiekins指出了Excel 2007错误,因此应使用Andrew建议的解决方案:"" ="" 2008-10-03"""

(假设Excel 2003 ...)

使用"文本到列"向导时,在步骤3中,我们可以指定每个列的数据类型。单击预览中的列,然后将行为异常的列从"常规"更改为"文本"。

替代方法:

将要更改的列的格式转换为"文本"。选择要保留,复制的所有单元格。在不取消选择这些列的情况下,单击"编辑>选择性粘贴>作为值"

另存为CSV。请注意,这必须是我们对该文件所做的最后一件事,因为当我们重新打开文件时,由于无法将单元格格式保存在CSV文件中,因此它将自身设置为日期格式。

警告:Excel '07(至少)有一个(另一个)错误:如果字段内容中有逗号,则不会正确解析=" field,contents",而是将逗号后的所有内容都放入后面的字段,而不考虑引号。

我发现唯一可行的解​​决方法是在字段内容包含逗号时消除=。

这可能意味着有些字段无法在Excel中准确表示"正确",但是到目前为止,我相信没有人会感到惊讶。