9
最新的2.0.0-beta5版本将原来的Sheet
类删除了,它的设置单元格格式方法setTableStyle
及setColumnWidthMap方法也不能用。
所以,我想问对于非实体类对象的导出,如何设置单元格格式?
最新的2.0.0-beta5版本将原来的Sheet
类删除了,它的设置单元格格式方法setTableStyle
及setColumnWidthMap方法也不能用。
所以,我想问对于非实体类对象的导出,如何设置单元格格式?
请问下,我数据中的值是0,1怎么转换成正常,禁用呢?
请问下,我数据中的值是0,1怎么转换成正常,禁用呢?
应该是需要自己做实体类的数据转换
@whpat126 感谢,自定义了一个转换器,在其中的写方法中处理的。
已解决
/**
* 创建默认表头及内容格式
* @return HorizontalCellStyleStrategy
*/
private HorizontalCellStyleStrategy createDefaultStyle() {
// 头的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 背景设置为白色
headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
// 表头的字体属性设置
WriteFont headFont = new WriteFont();
// 字体及大小
headFont.setFontName(DEFAULT_FONT_ARIAL);
headFont.setFontHeightInPoints((short)10);
// 是否加粗
headFont.setBold(false);
headWriteCellStyle.setWriteFont(headFont);
// 内容的策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
WriteFont contentFont = new WriteFont();
contentFont.setFontName(DEFAULT_FONT_ARIAL);
contentFont.setFontHeightInPoints((short)10);
contentWriteCellStyle.setWriteFont(contentFont);
// 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现
return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
}
/**
* 创建默认单元格样式,行高,列高
* @return
*/
private List<WriteHandler> getCustomWriteHandlerList() {
List<WriteHandler> list = Lists.newLinkedList();
// 默认单元格样式
list.add(this.createDefaultStyle());
// 默认行宽18
list.add(new SimpleColumnWidthStyleStrategy(18));
// 默认列高18
list.add(new SimpleRowHeightStyleStrategy((short)18, (short)18));
return list;
}
/**
* 使用easy-excel导出文件
* @param path 本次导出路径
* @param fileName 文件名
* @param columnIds 导出表头id
* @param columnsName 导出表头name
* @param columnRows 表头的行数
* @param resultList 导出结果集数据
* @param clazz 结果集映射实体类,为null的时候是结果集是map
*/
public void execute(String path, String fileName, List<String> columnIds, List<String> columnsName, Integer columnRows, List resultList, Class clazz) {
……
// 创建一个excel文件
ExcelWriter excelWriter = EasyExcel.write(wholePath.toString()).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
writeSheet.setHead(this.createDefaultHead(columnsName, columnRows));
// 设置单元格样式及行高列宽
writeSheet.setCustomWriteHandlerList(this.getCustomWriteHandlerList());
// 执行导出方法
excelWriter.write(data, writeSheet);
// 千万别忘记finish 会帮忙关闭流
excelWriter.finish();
}