如何让Excel按指定日期格式读取单元格且不修改单元格内容?
如何让Excel按指定日期格式读取单元格且不修改单元格内容?
嗨,我太懂你这种被Excel日期识别坑到崩溃的心情了!明明是欧洲格式的dd/mm/yyyy,一打开就被当成美式的mm/dd/yyyy,事后改格式还反而把日月倒转,简直离谱。不用改系统区域设置,给你几个精准解决的办法:
最推荐:用数据导入向导精准控制格式
这是最稳妥的方式,从根源上让Excel按你要的格式读取日期:
- 别直接双击CSV文件打开!先开一个空白Excel工作簿
- 切换到「数据」选项卡,找到「自文本/CSV」(不同版本可能叫“从文本获取数据”或者“导入数据”)
- 选中你的CSV文件,导入后会弹出预览窗口
- 点击「转换数据」(旧版Excel会直接进入分列向导)
- 在数据转换界面(或者分列向导的第三步),找到日期所在的列,把列数据类型改成「日期」,然后在格式下拉框里选「dd/mm/yyyy」(或者对应的欧洲日期格式)
- 确认后加载数据,这下Excel就会乖乖按指定格式识别日期,不会乱转日月了
稳妥备选:先按文本导入,再安全转换
如果怕导入时设置出错,可以先把日期当成纯文本导入,再一步步转换:
- 同样用数据导入向导,在设置列类型时,把日期列选为「文本」,这样Excel会原封不动读取字符串,不会自作聪明识别日期
- 导入完成后,选中日期列,点击「数据」→「分列」
- 分列步骤里选「分隔符号」(比如逗号,对应你的CSV分隔符),一路下一步到第三步
- 选择「日期」类型,然后在右侧下拉菜单里选「DMY」(日/月/年)
- 点击完成,日期就会被正确识别成日期格式,而且不会出现日月反转的问题
关于你提到的类似sep=的指令
Excel官方并没有支持类似sep=的dateformat=这类头部指令。不过有个非官方的小技巧可以试试:在CSV文件的最开头(表头上方)添加一行Local=en-GB(如果是其他欧洲国家可以换成对应区域代码,比如fr-FR),但这个方法不是所有Excel版本都生效,稳定性不如前面的导入方法,所以还是优先用前两种方案更靠谱。
备注:内容来源于stack exchange,提问作者Fly
相关产品推荐
相关产品推荐

