LibreOffice Calc无法保留自定义日期格式问题求助
解决PowerBI导出.xlsx在LibreOffice Calc中日期格式丢失问题
PowerBI导出的.xlsx文件里采用yyyy-mm-ddThh:nn:ssZ自定义格式的日期列,在LibreOffice Calc中会显示为十进制数字,试试这几个办法让Calc打开时直接保留格式:
调整LibreOffice导入预设
- 打开Calc后,点击「工具」>「选项」>「LibreOffice Calc」>「公式」,确认「1900年日期系统」已勾选(和Excel、PowerBI的日期系统对齐)
- 再进入「工具」>「选项」>「LibreOffice Calc」>「常规」,检查默认日期格式设置,确保和目标格式兼容
- 重新打开文件时,若弹出导入对话框,选中那两列日期列,将「列类型」设为「日期(YMD)」,并指定自定义格式为
yyyy-mm-ddThh:nn:ssZ
批量设置格式并保存预设
- 打开文件后,先手动给其中一列设置好
yyyy-mm-ddThh:nn:ssZ格式,然后用「格式刷」一键应用到另一列 - 右键已设置好格式的单元格,选择「单元格格式」>「数字」>「自定义」,点击「添加」把这个格式存为预设,下次打开同类文件直接选择该预设即可
用宏自动处理(适合频繁操作)
- 按下
Alt+F11打开Calc的宏编辑器,插入新模块,粘贴以下代码(注意修改列范围,示例中为A、B列,可替换成你实际的日期列):
Sub ApplyDateTimeFormat Dim oSheet As Object Dim oRange As Object oSheet = ThisComponent.CurrentController.ActiveSheet ' 修改为你的日期列范围,比如"C:C,D:D" oRange = oSheet.getCellRangeByName("A:A") oRange.NumberFormat = ThisComponent.NumberFormats.getFormat("yyyy-mm-ddThh:nn:ssZ") oRange = oSheet.getCellRangeByName("B:B") oRange.NumberFormat = ThisComponent.NumberFormats.getFormat("yyyy-mm-ddThh:nn:ssZ") End Sub
- 保存宏后,每次打开这类文件时运行宏,就能自动给目标列应用格式
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

