一.hutool導出方式
1.jar包
poi-4.1.0.jar
poi-ooxml-4.1.0.jar
poi-ooxml-schemas-3.9.jar
poi-scratchpad-3.9.jar
2.方法
// ArrayList<Map<String, Object>> rows = CollUtil.newArrayList(row1, row2);
//通過工具類創建writer
ExcelWriter writer = ExcelUtil.getWriter();
//通過構造方法創建writer
//ExcelWriter writer = new ExcelWriter("d:/writeTest.xls");
//跳過當前行,既第一行,非必須,在此演示用
// writer.passCurrentRow();
//自定義標題別名
// writer.addHeaderAlias("name", "姓名");
// writer.addHeaderAlias("age", "年齡");
// writer.addHeaderAlias("score", "分數");
// writer.addHeaderAlias("isPass", "是否通過");
// writer.addHeaderAlias("examDate", "考試時間");
//合併單元格後的標題行,使用默認標題樣式
// writer.merge(row1.size() - 1, "一班成績單");
//一次性寫出內容
writer.write(sfPatrolLogs);
//response爲HttpServletResponse對象
//response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setContentType("application/octet-stream");
//test.xls是彈出下載對話框的文件名,不能爲中文,中文請自行編碼
response.setHeader("Content-Disposition","attachment;filename=PatrolLog.xls");
ServletOutputStream out=response.getOutputStream();
writer.flush(out);
// 關閉writer,釋放內存
writer.close();
// return ResponseEntity.ok(Result.success(true));
二.autopoi導出方式
1.jar包
autopoi-web-1.0.2.jar
2.dto
package com.geostar.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import java.io.Serializable;
import java.util.List;
/**
* <p>
* 導出巡查日誌
* </p>
*/
@Data
@ApiModel(value="SF_PATROL_LOG對象", description="導出巡查日誌")
public class SfExportPatrolLogDto implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "企業名稱", width = 20,needMerge=true)
@ApiModelProperty(value = "企業名稱")
private String companyName;
@Excel(name = "檢查時間", width = 10,needMerge=true,format = "yyyy-MM-dd")
@ApiModelProperty(value = "檢查時間")
private String patrolTime;
@Excel(name = "整改期限", width = 10,needMerge=true)
@ApiModelProperty(value = "整改期限")
private String checkTime;
@Excel(name = "生效時間", width = 10,needMerge=true)
@ApiModelProperty(value = "生效時間")
private String validTime;
@Excel(name = "檢查人員", width = 10,needMerge=true)
@ApiModelProperty(value = "檢查人員")
private String patrolGroup;
@ExcelCollection(name = "檢查項列表")
private List<SfExportLogExamineDto> exportLogExamineDtoList;
@Excel(name = "檢查結果", width = 10,needMerge=true)
@ApiModelProperty(value = "檢查結果")
private String isPass;
}
package com.geostar.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* <p>
* 導出巡查日誌檢查項
* </p>
*
* @author hll
* @since 2019-08-05
*/
@Data
@ApiModel(value="SF_LOG_EXAMINE對象", description="導出巡查日誌檢查項")
public class SfExportLogExamineDto implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "檢查項", width = 20)
@ApiModelProperty(value = "檢查項")
private String name;
@Excel(name = "檢查內容", width = 20)
@ApiModelProperty(value = "檢查內容")
private String remark;
@Excel(name = "單檢查結果", width = 10)
@ApiModelProperty(value = "單檢查結果")
private String examineResult;
}
2.方法
@ApiOperation(value = "導出巡查日誌")
@RequestMapping("exportPatrolLog")
public ModelAndView exportPatrolLog(HttpServletRequest request, HttpServletResponse response, String companyName, String patrolTimeS, String patrolTimeE, String result,String ids){
List<SfExportPatrolLogDto> sfPatrolLogs = sfPatrolLogService.excelQueryPatrolLog(companyName,patrolTimeS,patrolTimeE,result,ids);
//導出
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
// 導出文件名稱
mv.addObject(NormalExcelConstants.FILE_NAME, "檢查日誌彙總");
// 註解對象Class
mv.addObject(NormalExcelConstants.CLASS, SfExportPatrolLogDto.class);
// 自定義表格參數
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("檢查日誌彙總", "數量: " + sfPatrolLogs.size() + " 時間: " + patrolTimeS + " 至 " + patrolTimeE + " 備註:0是通過,1是不通過 ", "檢查日誌"));
// 導出數據列表
mv.addObject(NormalExcelConstants.DATA_LIST, sfPatrolLogs);
return mv;
}