首页 > 解决方案 > Calc:单元格格式将空日期转换为 '30/12/1899'

问题描述

在我的 LibreOffice Calc 电子表格中,我有一个块,每个数据数组都有一行(带有块:tbs-row),其中一个值是日期,有时是空的带有 [blk1.DT_FIN_ABONNEMENT;noerr;frm=dd/mm /yyyy;ope=tbs:string],不为空时我有一个文本值,当值为空时有一个空单元格。

使用 [blk1.DT_FIN_ABONNEMENT;noerr;frm=dd/mm/yyyy;ope=tbs:date],我在不为空时有一个日期值,当值为空时我有一个“30/12/1899”。当没有价值时,我想有一个空单元格。

我试过 frm='dd/mm/yyyy|||', frm='dd/mm/yyyy||| ', frm='dd/mm/yyyy|||NULL', frm='dd/mm/yyyy|||#N/A' 结果是一样的

和 [blk1.DT_FIN_ABONNEMENT;noerr;ope=tbs:string;mok:magnet=tbs:p] [blk1.DT_FIN_ABONNEMENT;noerr;frm=dd/mm/yyyy;ope=tbs:date;magnet=tbs:p]

打破模板

谁能给我一个线索?谢谢

标签: dateopentbs

解决方案


LibreOffice(和 OpenOffice)的日期没有 NULL 值。只要将单元格键入为date,它就会尝试将其转换为日期。如果日期值为空,则应用零日期值,该值在选项窗口中为工作簿设置:工具/选项/LivreOffice Calc/Calculation。如您所见,默认zero date value值通常设置为1899-12-30.

不幸的是,OpenTBS 还不能处理这种 LibreOffice 行为。(OpenTBS 当前版本是 1.10.0)。

A 看不到任何简单的解决方法。

  • 由于您使用ope=tbs:date,因此单元格被键入为日期,因此 LibreOffice 假定它是zero date value当内部值为空时。顺便说一句,当您使用 时ope=tbs:date,您的参数frm将被 OpenTBS 覆盖。

  • 由于您不使用ope=tbs:something,因此单元格被键入为字符串,并且您不能将单元格用作日期...


推荐阅读