Excel 将 CSV 文件中的字符串格式化为日期。如何保留原始字符串值?

Excel 将 CSV 文件中的字符串格式化为日期。如何保留原始字符串值?

我遇到了一个问题Microsoft Excel 2010关于将字符串自动格式化为日期,它似乎丢失了单元格的原始值。

重现步骤:

1创建以下 CSV 文件:

 username, points
 phil, 1
 october51, 5

2在 Microsoft Excel 2010 中打开该文件

笔记:有一行包含用户名october51。我希望 Excel 保留此值,而不是将其转换为其他值。

在文本编辑器中打开的示例 CSV 文件

当我在文本编辑器(例如:gVim)中打开此示例 CSV 文件时,我看到的正是我所期望的内容:

在 gVim 中打开的示例 CSV 文件

在 Microsoft Excel 2010 中打开的示例 CSV 文件

但是,当我在 Excel 中打开 CSV 文件时,它的格式october51Oct-51

在 Excel 中打开的 CSV 文件,october51 已被格式化为 Oct-51

我理解 Excel 为何尝试将该字段格式化为更易读的格式,但我宁愿保留该值,因为october51它是某人的用户名。

在 Excel 中尝试不同的单元格格式

请注意,首次打开文件时,单元格的字段格式Oct-51风俗。因此,我尝试将格式更改为文本

在此处输入图片描述

这没什么好转。单元格的值是18902,而不是october51我期望的。看起来 Excel 在打开文件时立即丢弃了单元格的原始值。

我已经尝试了所有可能的格式(例如:常规、文本、特殊、自定义),但它们都没有输出值october51

真正的问题是,保存文件时,此单元格格式会保留下来。如果我将此文件保存在 Excel 中并在文本编辑器中重新打开它,则用户名october51实际上已更改为Oct-5118902,具体取决于为单元格选择的格式。

如何让 Excel 保留单元格的原始字符串值?

答案1

请尝试以下步骤:

将 CSV 文件重命名为 TXT 扩展名(即:sample.txt)。打开空白 Excel 表 > 转到“文件”>“打开”> 在“打开搜索”窗口中,从下拉列表中选择“文本文件 (*.txt, *.csv)”浏览 .csv 文件 > 单击“打开”,但现在。请参阅以下分步屏幕截图:

在此处输入图片描述

在此处输入图片描述

取消勾选 Tab 并勾选逗号框:

在此处输入图片描述

选择“文本”按钮并单击“完成”按钮。

在此处输入图片描述

希望这可以帮助。

答案2

不要使用 Excel 打开 CSV 文件,而是创建一个新的工作表并启动“文本导入向导”(在“数据”选项卡的“获取外部数据”组中,单击“来自文本”)。在步骤 3 中,您将能够单击列的标题并将列的数据类型更改为“文本”。这将阻止 Excel 将数据解释为日期。

有关文本导入向导的更多信息,请参阅本文

答案3

我最后只用了LibreOffice 的 Calc而不是 Excel。

在 LibreOffice Calc 中打开 CSV 文件不会损坏october51数据

LibreOffice Calc 正确解析数据

答案4

使用 VBA 导入 CSV 时我遇到了同样的问题。我发现这解决了 csv 导入的问题,将以 JANxxx、FEBxxx、MARxxx 等开头的文本更改为日期只需设置 .TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)。将第一个数组值更改为 2 可停止对第一列的错误解释,该列包含受到干扰的文本。

相关内容