CSV文件日期格式保存及丢失问题咨询
CSV文件日期格式保存及丢失问题咨询
嗨,我来帮你解决这个CSV保存后日期格式丢失的问题~
首先得说明下原因:CSV是纯文本格式的文件,它不存储任何格式信息——你在Excel里设置的日期格式只是Excel层面的显示效果,保存成CSV后,文件里其实只有日期的原始文本内容。当你重新用Excel打开CSV时,它会自动尝试识别日期,然后用默认的日期格式显示,这就导致你之前设置的yyyy-dd-mm或yyyy-dd-mm hh:mm格式不见了。
下面给你几个实用的解决办法:
方法一:先把日期列转成文本再保存CSV
这是最直接的方式:- 选中所有包含目标日期的列
- 右键点击,选择「设置单元格格式」
- 在弹出的窗口里切换到「文本」选项卡,点击确定
- 确认日期显示和你需要的
yyyy-dd-mm/yyyy-dd-mm hh:mm一致后,再另存为CSV文件
这样CSV里会完整保留你的日期文本,下次打开时Excel不会自动转换格式(注意转文本前要确保日期已经是正确格式,不然转成文本后修改会麻烦)
方法二:用「导入数据」功能打开CSV而非直接双击
如果已经保存了CSV,或者不想修改原Excel文件,可以用这种方式:- 打开空白Excel文件,切换到「数据」选项卡
- 点击「自文本/CSV」(不同Excel版本可能表述略有不同),选择你的CSV文件
- 在导入预览界面,找到日期列,点击列标题旁的下拉菜单,选择「文本」;或者选择「自定义」,输入对应的格式字符串
yyyy-dd-mm或yyyy-dd-mm hh:mm - 完成导入后,日期就会按你需要的格式显示了
方法三:用Power Query批量处理(适合频繁操作的场景)
如果你经常需要处理这类带特定日期格式的CSV,Power Query会更高效:- 打开Excel,「数据」选项卡→「获取数据」→「从文件」→「从CSV」,选择文件
- 在Power Query编辑器里,选中日期列,右键选择「更改类型」→「使用格式」,输入
yyyy-dd-mm或yyyy-dd-mm hh:mm - 调整好后点击「关闭并上载」,以后每次导入这个文件都能自动应用这个格式设置
另外补充个小细节:如果你用记事本、Notepad++这类文本编辑器打开CSV,会发现你的日期格式其实是存在的——只是Excel自动识别时替换成了默认格式,所以核心是让Excel打开时按你指定的规则读取日期。
备注:内容来源于stack exchange,提问作者Gwen Taylor




