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

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


当前回答

另一种方法:

将要更改的列的格式转换为“Text”。选择要保留的所有单元格,复制。在不取消这些列的情况下,单击“编辑>粘贴特殊> As值”

保存为CSV。请注意,这必须是您对文件所做的最后一件事,因为当您重新打开它时,它将自己格式化为日期,因为单元格格式不能保存在CSV文件中。

其他回答

对于同样的问题,我所做的是在每个csv值之前添加以下内容: “=”“” 在Excel中打开文件之前,在每个CSV值后加上双引号。以以下值为例:

012345,00198475

在Excel中打开之前,这些应该更改为:

"="""012345","="""00198475"

这样做之后,每个单元格值在Excel中都显示为公式,因此不会格式化为数字、日期等。例如,012345的值显示为:

="012345"

(假设Excel 2003…)

当使用文本到列向导时,在步骤3中,您可以为每个列指定数据类型。单击预览中的列,将行为不端的列从“常规”更改为“文本”。

而创建字符串要写入我的CSV文件在c#中,我必须这样格式化它:

"=\"" + myVariable + "\""

不是Excel。Windows可以识别公式、数据作为日期并自动更正。你必须更改Windows的设置。

“控制面板”(->“切换到经典视图”)->“区域和语言” 选项”->选项卡“区域选项”->“自定义…”->选项卡“数字”->和 然后根据你想要的改变符号。

http://www.pcreview.co.uk/forums/enable-disable-auto-convert-number-date-t3791902.html

它将在您的计算机上工作,如果这些设置没有更改,例如在您的客户的计算机上,他们将看到日期而不是数据。

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