jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi。
一般我们会创建一个实体类TestExcelVo.java
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
@Data
public class TestExcelVo {
//实体属性,一定要用驼峰命名,不然后台会自动转成驼峰
@Excel(name = "字段1", width = 15)
@JSONField(name = "field1")
private String field1;
@Excel(name = "字段2", width = 15)
@JSONField(name = "field2")
private String field2;
@Excel(name = "字段3", width = 15)
@JSONField(name = "field3")
private String field3;
}
然后使用导出方法导出
/**
* 导出行明细excel
*/
@RequestMapping(value = "/exportItemsXlsUrl")
public ModelAndView exportItemsXlsUrl(@RequestParam(name = "paramStr") String paramStr, HttpServletRequest req) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String basePath = System.getProperty("user.dir");
String fileDir = basePath + File.separator + "excel导出记录" + File.separator;
log.info("fileDir:" + fileDir);
String attributeValue = "导出文件";
String title = "导出文件";
String secondTitle = "导出人:";
String sheetName = "导出文件";
// 获取接口请求参数
FsmSystemParamVo fsmParamVo = fsmTokenService.getFsmSystemParamVo("");
JSONObject params = JSONObject.parseObject(paramStr);
List<TestExcelVo> list = projectStageStatistics.getPageList(fsmParamVo, params);
String curDateTime = LocalDateTime.now().toString().replace("T", "_").substring(0, 19).replace(":", "_");//文件名称不能带:
String fileName = attributeValue + "_" + curDateTime;
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, attributeValue);
//mv.addObject(NormalExcelConstants.FILE_NAME, fileName);//无效
mv.addObject(NormalExcelConstants.CLASS, TestExcelVo.class);
//mv.addObject(NormalExcelConstants.PARAMS, new ExportParams(title, secondTitle + sysUser.getRealname(), sheetName));
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams(title, secondTitle, sheetName));
mv.addObject(NormalExcelConstants.DATA_LIST, list);
//生成本地文件 使用本地的模板
TemplateExportParams params2 = new TemplateExportParams("templates/excel/数据导出-模板.xls");
params2.setHeadingStartRow(2);
params2.setHeadingRows(1);
Map<String, Object> map = new HashMap<String, Object>();
Workbook workbook = ExcelExportUtil.exportExcel(params2, TestExcelVo.class, list, map);
File savefile = new File(fileDir);
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = null;
try {
log.info("excel导出文件名称:" + fileDir + fileName + ".xls");
fos = new FileOutputStream(fileDir + fileName + ".xls");
workbook.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return mv;
}
以上方法页面可以正常导出文件,服务器本地可以生成对应的文件记录
本文介绍如何在Jeecg框架中利用easypoi实现Excel文件的导出功能。通过创建实体类TestExcelVo并调用导出方法,能够在页面上成功导出文件,并在服务器本地生成相应的文件记录。
22万+

被折叠的 条评论
为什么被折叠?



