public void test(){
/*组装exc数据*/
List<List<String>> dataList = assemblyExcelData(list);
/*表头*/
List<List<String>> headList = new ArrayList<List<String>>();
headList.add(Arrays.asList("报表日期"));
if (StringUtil.paramIsIntact(request.getParameter("canteenno"))){
headList.add(Arrays.asList("餐厅名称"));
}
if (StringUtil.paramIsIntact(request.getParameter("merchantno"))){
headList.add(Arrays.asList("商户名称"));
}
if ("1".equals(request.getParameter("type"))){
headList.add(Arrays.asList("服务人数"));
}else {
headList.add(Arrays.asList("营业额"));
}
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("营业报表导出", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream()).registerWriteHandler(baseService.getCellStyle())
.registerWriteHandler(new ExcelWidthStyleStrategy())
.head(headList).sheet("统计报表")
.doWrite(dataList);
}
private List<List<String>> assemblyExcelData(List<JSONObject> list) {
List<List<String>> data = new ArrayList<List<String>>();
for (JSONObject obj : list) {
List<String> strs = new ArrayList<String>();
strs.add(obj.getString("rptdate"));
if (StringUtil.paramIsIntact(obj.getString("canteenname"))){
strs.add(obj.getString("canteenname"));
}
if (StringUtil.paramIsIntact(obj.getString("merchantname"))){
strs.add(obj.getString("merchantname"));
}
if (StringUtil.paramIsIntact(obj.getString("mealtimecode"))){
strs.add(obj.getString("mealtimecode"));
}
if (StringUtil.paramIsIntact(obj.getString("turnover"))){
strs.add(obj.getString("turnover"));
}else {
strs.add(obj.getString("consumenum"));
}
data.add(strs);
}
return data;
}
@Component
public class ExcelWidthStyleStrategy extends AbstractColumnWidthStyleStrategy {
@Override
protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
// 使用sheet对象 简单设置 index所对应的列的列宽
Sheet sheet = writeSheetHolder.getSheet();
sheet.setColumnWidth(cell.getColumnIndex(), 5000);
}
}
public HorizontalCellStyleStrategy getCellStyle() {
// 头的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
// 内容的策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setBorderBottom(BorderStyle.THIN); //下边框
contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);//左边框
contentWriteCellStyle.setBorderTop(BorderStyle.THIN);//上边框
contentWriteCellStyle.setBorderRight(BorderStyle.THIN);//右边框
//设置 垂直居中
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//设置 水平居中
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
return horizontalCellStyleStrategy;
}
easyexcel导出 导出列不固定
最新推荐文章于 2024-05-21 19:15:40 发布