POI 单元格的合并、数据行的分组以及 Excel 窗口的冻结
本来想把这三个东西分开来实现的,后来发现分开后内容都很少,于是就合在一起说吧。那
总不能干巴巴的列几个例子就完了吧,那就拿比较初级但又会经常遇到的表格类数据的统计
的设计来做个小例子。(源码下载)
结果发现——还真够辛苦的。
这次先看效果图吧,其中的竖排并不是真正意义上 Excel 那种设置的竖排,而是稍微转变了
一下输出的方式实现的,因为老外的英文单词没有这种竖排的可能(顶多是旋转,但是那样
字体就变了)。除此之外想到的另外一种竖排文字的实现方式就是样式旋转+字体旋转,没
测试,不知道是否可用,谁有功夫实现一下,然后记得告诉我结果啊。
老样子,把核心的代码和简要的说明列出来大家看一下吧。
// 这里首先创建一个单元格样式对象,设置了四周的边框以及字体可以换行
// 其中的字体换行是用来竖向显示其中的一个单元格的
// 更好的一点儿做法是再做一个单独的单元格样式对象
// 要不然在处理自动列宽的时候可能会有点儿小问题
HSSFCellStyle normalStyle = wb.createCellStyle();
normalStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
normalStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
normalStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
normalStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
normalStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
normalStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
normalStyle.setWrapText(true);