上一篇介绍了POI组件操作Excel时如何对单元格和行进行设置,合并单元格等操作,最后给出一个综合实例,就是制作复杂报表,原理就是涉及合并行和列的计算。
本篇就来详细分析一下复杂报表的分析与设计问题,并用POI通过程序来生成Excel报表。首先说一点文档相关内容。使用POI组件可以生成Office文档,而Office文档也有一些属性,比如作者,分类,公司等信息。我们若通过程序生成时,这一步就直接略过了,但有时我们会需要这些信息,要写入一些文档信息,那么该如何实现呢?
我们分2003和2007两个版本说明,因为操作是不太一样的。看下面的代码:
本篇就来详细分析一下复杂报表的分析与设计问题,并用POI通过程序来生成Excel报表。首先说一点文档相关内容。使用POI组件可以生成Office文档,而Office文档也有一些属性,比如作者,分类,公司等信息。我们若通过程序生成时,这一步就直接略过了,但有时我们会需要这些信息,要写入一些文档信息,那么该如何实现呢?
我们分2003和2007两个版本说明,因为操作是不太一样的。看下面的代码:
- // 设置核心属性
- POIXMLProperties.CoreProperties props = workbook2007.getProperties()
- .getCoreProperties();
- props.setCreator("Nanlei");
- props.setCategory("POI程序测试");
- props.setTitle("学生信息表");
- // 设置扩展属性
- POIXMLProperties.ExtendedProperties extProps = workbook2007
- .getProperties().getExtendedProperties();
- // 设置自定义属性
- POIXMLProperties.CustomProperties customProps = workbook2007
- .getProperties().getCustomProperties();
生成2007的Excel时,只需上述步骤便可加入我们需要的属性了,具体的属性含义可以参考官方文档,这里仅仅添加作者,分类和标题,生成Excel文档后,我们可以查看到入校内容:

那么这里就是我们设置的一些信息了。而对于2003,则需要如下的步骤: