1.在pom文件中引入依赖
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version> </dependency>
2.在服务层中床架接口和实现类
//生成用户信息Excel表 File createUserExcelFile (PageRequest pageRequest);
package com.louis.mango.service.impl; import com.alibaba.druid.sql.dialect.oracle.ast.expr.OracleDateTimeUnit; import com.louis.mango.config.PoiUtils; import com.louis.mango.entity.SysUser; import com.louis.mango.mapper.SysUserMapper; import com.louis.mango.service.SysUserService; import com.mango.mangocare.page.PageRequest; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.function.Function; /** * <p> * 用户管理 服务实现类 * </p> * * @author ZhangWeiQiang * @since 2020-11-04 */ @Service public class SysUserServiceImpl implements SysUserService { @Autowired private SysUserMapper sysUserMapper; //查询所有 @Override public List<SysUser> findAll() { return sysUserMapper.findAll(); } /** * 生成用户表 * @param pageRequest * @return */ @Override public File createUserExcelFile(PageRequest pageRequest) { PageRequest pageRequest1 = findPage(pageRequest); return createUserExcelFile((PageRequest) pageRequest.getContent()); } public static File createUserExcelFile(List<?> records) throws Exception { if (records == null) { records = new ArrayList<>(); } XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(); XSSFRow rowo = sheet.createRow(0); int columnIndex = 0; rowo.createCell(columnIndex).setCellValue("No"); rowo.createCell(columnIndex).setCellValue("ID"); rowo.createCell(columnIndex).setCellValue("用户名"); rowo.createCell(columnIndex).setCellValue("昵称"); rowo.createCell(columnIndex).setCellValue("机构"); rowo.createCell(columnIndex).setCellValue("角色"); rowo.createCell(columnIndex).setCellValue("邮箱"); rowo.createCell(columnIndex).setCellValue("手机号"); rowo.createCell(columnIndex).setCellValue("状态"); rowo.createCell(columnIndex).setCellValue("头像"); rowo.createCell(columnIndex).setCellValue("创始人"); rowo.createCell(columnIndex).setCellValue("创建时间"); rowo.createCell(columnIndex).setCellValue("最后更新人"); rowo.createCell(columnIndex).setCellValue("最后更新时间"); for (int i = 0; i < records.size(); i++) { SysUser user = (SysUser)records.get(i); Row row = sheet.createRow(i + 1); for (int j = 0; j < columnIndex; j++) { row.createCell(j); } columnIndex = 0; row.getCell(columnIndex).setCellValue(i + 1); row.getCell(columnIndex).setCellValue(user.getId()); row.getCell(columnIndex).setCellValue(user.getName()); row.getCell(columnIndex).setCellValue(user.getNickName()); row.getCell(columnIndex).setCellValue(user.getDelFlag()); row.getCell(columnIndex).setCellValue(user.getEmail()); row.getCell(columnIndex).setCellValue(user.getStatus()); row.getCell(columnIndex).setCellValue(user.getAvatar()); row.getCell(columnIndex).setCellValue(user.getCreateBy()); //row.getCell(++columnIndex).setCellValue(DateTimeU); } return PoiUtils.createExcelFile(workbook,"download_user"); } private PageRequest findPage(PageRequest pageRequest) { return null; } }
3.创建controller
@PostMapping("/excelUser") public void exportExcelUser(@RequestBody PageRequest pageRequest, HttpServletResponse res){ File file = sysUserServic.createUserExcelFile(pageRequest); FileUtils.downloadFile(res,file,file.getName()); }