在 Excel 2010 中使用自定义数据格式制作图表

在 Excel 2010 中使用自定义数据格式制作图表

我正在通过 Apache POI 定义自定义数据格式。我知道我需要使用以下构造:

DataFormat data = this.workbook.createDataFormat();
cellStyle.setDataFormat(data.getFormat("YY:DDD:HH:MM:SS"));

我在 Apache POI 文档中找到了关于格式

我需要格式化的数据代表日期和时间,即:

00:000:00:15:00 
YY:DDD:HH:MM:SS

到目前为止一切正常。右键单击 Excel 单元格,检查单元格格式 -> 自定义年:日:时:分:秒。但是我无法根据此自定义时间格式制作图表。选择此数据:

task   | time
-------|----------------
task 1 | 00:000:00:15:00
task 2 | 00:000:00:20:00
task 3 | 00:000:00:10:00

选择选项插入条形图会输出一些乱码。有没有办法让图表正常工作,而无需创建其他数据(例如计算总秒数并显示秒数值)?

答案1

Excel 将日期和时间处理为序列数,其中数字是自 1900 年 1 月 0 日以来的天数,小数是 24 小时的小数部分(有关更多信息,请参阅CPearson 的 Excel 日期/时间。因此在 Excel 中,10/12/2012 10:20:07 = 41194.4306392361。为了帮助我们与 Excel 交互,它可以识别某些标准格式的日期/时间(例如传统的美国 MM/DD/YYYY HH:MM:SS)。您遇到的问题是 Excel 无法将日期格式(YY:DDD:HH:MM:SS)识别为日期/时间。您有两种解决方案:

  1. 以“Excel 友好”格式从 Apache 导出您的日期;或者
  2. 使用公式将您的自定义格式转换为 Excel 中的“Excel 友好”格式。

如果您使用#2,并且自定义日期格式中的 DDD 实际上是一年中的某天(例如,2012 年 10 月 12 日是一年中的第 286 天),那么您可能需要 VBA 来处理将其转换为适当的日/月组合。

相关内容