在Excel中保存为CSV会丢失区域日期格式

ups*_*ake 6 csv excel export-to-csv

我有一个.xls我需要转换为.csv

该文件包含一些日期列.日期格式为"*14/03/2001",根据Excel表示日期响应为操作系统指定的区域日期和时间设置.

在Excel中打开,您会看到:

20/01/2013
01/05/2013
Run Code Online (Sandbox Code Playgroud)

另存为... CSV

在记事本中打开:

01/20/2013
05/01/2013
Run Code Online (Sandbox Code Playgroud)

我通过将日期格式设置为"14/03/2001"(否*)暂时修复了,但即使是其他一些没有*的自定义格式,例如"d/mm/yyyy h:mm"在保存为CSV时也会受到损坏.

ups*_*ake 9

虽然记住这一点http://xkcd.com/1179/

最后,我决定YYYYMMDD在所有CSV文件中使用该格式,该格式不会在Excel中转​​换为日期,但可以被我们所有的应用程序正确读取.


dea*_*ode 8

您可以按照以下步骤将所需的日期格式从Excel保存到.csv,希望excel专家可以进一步优化并减少步骤数:

  1. 创建一个新列DATE_TMP并将其设置为= TEXT(oldcolumn,"date-format-arg")公式.

例如,在您的示例中,如果您的日期位于A列,则此新列的第1行中的值将为:

= TEXT(A1,"dd/mm/yyyy")

  1. 在现有日期列旁边插入空白列DATE_NEW.

  2. 使用"粘贴为值"选项将DATE_TMP的内容粘贴到DATE_NEW中.

  3. 删除DATE_TMP和您现有的日期列,将DATE_NEW重命名为旧日期列.

  4. 保存为csv.

  • 这对我不起作用。将格式更改为 YYYY-MM-DD 和列类型文本,但在重新打开时它仍显示为 DD/MM/YYYY。 (3认同)

Set*_*tin 5

您需要做的工作比 1. 单击导出 2. 打开文件多得多。

我认为,当 Excel CSV 文档谈到正在解释的操作系统和区域设置时,这意味着 Excel 在打开文件(采用“特殊”csv 格式)时会这样做。请参阅这篇文章,“Excel 格式和功能不会转移到其他文件格式”

此外,Excel 实际上是存储一个数字,并转换为仅用于显示的日期字符串。当它导出为 CSV 时,它会将其转换为不同的日期字符串。如果您希望该日期字符串为非默认值,则需要在执行导出之前将 Excel 单元格转换为字符串。

或者,您可以将日期转换为 Excel 保存的数值。由于这是一个时间码,它实际上会遵守操作系统和区域设置,假设您正确导入它。不过,记事本只会显示 10 位数字。


小智 5

在日历设置下以"短日期"格式更改计算机的日期和时间设置.这将改变所有yyyy-mm-dd的格式,或者你想要它显示的格式; 但请记住,即使对于保存在计算机上的文件,它也会如此.

至少它有效.

  • 我不敢相信这就是这个问题的解决方案。谢谢 (5认同)

bal*_*ldy 5

如果您使用自定义格式,而不是预先选择的日期格式之一,导出到 CSV 将保留您选择的格式。否则它默认回美国格式