有没有人碰巧知道,如果有一个令牌,我可以添加到我的csv的某个字段,这样Excel就不会试图将它转换为日期?

我试图从我的应用程序中编写一个.csv文件,其中一个值碰巧看起来足够像一个日期,Excel会自动将它从文本转换为日期。我曾尝试将所有文本字段(包括看起来像日期的文本字段)放在双引号内,但没有效果。


当前回答

我发现在双引号前加一个'='就能达到你想要的效果。它强制数据为文本。

如。=“2008-10-03”=“文本”

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

其他回答

这个问题仍然存在于Mac Office 2011和Office 2013,我无法阻止它发生。这似乎是很基本的事情。

在我的例子中,我有诸如“1 - 2”和“7 - 12”的值,在CSV中正确地用倒逗号括起来,这将自动转换为excel中的日期,如果您尝试随后将其转换为纯文本,您将得到日期的数字表示形式,如43768。此外,它将条形码和EAN编号中的大数字重新格式化为123E+数字,再次无法转换回来。

我发现谷歌驱动器的谷歌表不能将数字转换为日期。条形码中每3个字符有一个逗号,但这些很容易被删除。它处理csv非常好,特别是在处理MAC / Windows csv时。

说不定还能救人。

使用谷歌驱动器(如果你在Mac上,也可以使用Numbers)的解决方案:

在Excel中打开数据 将数据错误的列的格式设置为文本(format > Cells > Number > Text) 将.csv文件加载到谷歌Drive,并使用谷歌Sheets打开它 复制出错的列 将列作为文本粘贴到Excel中(编辑>粘贴特殊>文本)

或者,如果你在Mac上进行第3步,你可以在Numbers中打开数据。

我有一个类似的问题,这是解决方案,帮助我无需编辑csv文件内容:

如果你可以灵活地将文件命名为“。csv”以外的东西,你可以用“。txt”扩展名来命名它,比如“Myfile.txt”或“Myfile.csv.txt”。然后,当你在Excel中打开它(不是通过拖放,而是使用文件->打开或最近使用的文件列表),Excel将为你提供一个“文本导入向导”。

在向导的第一页中,为文件类型选择“Delimited”。

在向导的第二页中,选择“,”作为分隔符,如果用引号括起值,还可以选择文本限定符

在第三页,分别选择每一列,并为每一列分配类型为“文本”而不是“常规”,以防止Excel弄乱你的数据。

希望这能帮助你或有类似问题的人!

在我的案例中,使用R生成的csv文件中的“Sept8”被Excel 2013转换为“8-Sept”。该问题通过使用xlsx包中的write.xlsx2()函数生成xlsx格式的输出文件来解决,该输出文件可以由Excel加载,而无需进行不必要的转换。因此,如果给你一个csv文件,你可以尝试将它加载到R中,并使用write.xlsx2()函数将其转换为xlsx。

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

例子: 25/12/2008变成了25/12/2008

您还可以在导入时选择字段类型。