|
@@ -0,0 +1,46 @@ |
|
|
|
|
|
2.6 Excel的样式自定义 |
|
|
|
|
|
=== |
|
|
|
|
|
|
|
|
|
|
|
"路飞,来办公室一趟",就这样路飞又被叫到了办公室,这次老师的需求是,想要一个漂亮点的Excel,希望路飞可以点缀下Excel,思来想去还是需要用poi的style来解决,但是如果每个都写style是不是太麻烦,而且Excel的styler数量是有限制的,这里就需要尽量复用已经创造的style,看看之前的Excel表格,大体上可以分为[标题,表头,表体],那可以说的就是创建一个接口每次调用这三个接口就可以了不说干就干 |
|
|
|
|
|
```java |
|
|
|
|
|
public interface IExcelExportStyler { |
|
|
|
|
|
/** |
|
|
|
|
|
* 列表头样式 |
|
|
|
|
|
* @param headerColor |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
public CellStyle getHeaderStyle(short headerColor); |
|
|
|
|
|
/** |
|
|
|
|
|
* 标题样式 |
|
|
|
|
|
* @param color |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
public CellStyle getTitleStyle(short color); |
|
|
|
|
|
/** |
|
|
|
|
|
* 获取样式方法 |
|
|
|
|
|
* @param Parity |
|
|
|
|
|
* @param entity |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
public CellStyle getStyles(boolean Parity, ExcelExportEntity entity); |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
**实现类尽量复用已经创建的Styler,切记** |
|
|
|
|
|
这样路飞先造了一个带边框的styler ,**ExcelExportStylerBorderImpl** |
|
|
|
|
|
效果如下 |
|
|
|
|
|
![2.6-1](https://static.oschina.net/uploads/img/201707/11203544_eOw4.png "边框") |
|
|
|
|
|
然后路飞又手痒写了个带换行颜色的 **ExcelExportStylerColorImpl** |
|
|
|
|
|
效果如下 |
|
|
|
|
|
![2.6-2](https://static.oschina.net/uploads/img/201707/11203718_miwu.png "在这里输入图片标题") |
|
|
|
|
|
|
|
|
|
|
|
客官看到这里应该就大体理解了我们的实现方法了吧, |
|
|
|
|
|
最后路飞实现了一个复杂的按照老师要求的样式交差了 |
|
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------ |
|
|
|
|
|
styler接口用法 |
|
|
|
|
|
上面两个表头和标题样式不用解释 |
|
|
|
|
|
后面这个是传入当前列的以及奇偶行,用户可以根据需求实现业务,包括去掉Excel的小箭头(也就是设置数字为数字格式的Cell),完成居中,字体等等各式各样的需求 |
|
|
|
|
|
但是这里无法实现特别没的Excel,如果有这种需求可以使用模板来实现,在Excel点点就可以完美实现 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|