package cn.com.goldenwater.dcproj.utils.export.template; import cn.com.goldenwater.dcproj.dao.BisInspManageResponsibilityDao; import cn.com.goldenwater.dcproj.dao.BisInspVlgdrinkProjManageDao; import cn.com.goldenwater.dcproj.dao.BisInspWateruserInfoDao; import cn.com.goldenwater.dcproj.model.BisInspManageResponsibility; import cn.com.goldenwater.dcproj.model.BisInspVlgdrinkProjManage; import cn.com.goldenwater.dcproj.model.BisInspWateruserInfo; import cn.com.goldenwater.dcproj.param.BisInspManageResponsibilityParam; import cn.com.goldenwater.dcproj.param.BisInspVlgdrinkProjManageParam; import cn.com.goldenwater.dcproj.param.BisInspWateruserInfoParam; import cn.com.goldenwater.dcproj.utils.export.CreateRyTables; import cn.com.goldenwater.dcproj.utils.export.ExcelFieldUtil; import cn.com.goldenwater.dcproj.utils.export.TableEnum; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @ClassName CreateRyTablesByTemplate * @Author liyz * @Date 2019/3/29 16:31 * @Version 1.0 **/ @Component public class CreateRyTablesByTemplate extends CreateRyTables { @Value("${export.templatePath}") private String templatePath; @Autowired private BisInspManageResponsibilityDao bisInspManageResponsibilityDao; @Autowired private BisInspVlgdrinkProjManageDao bisInspVlgdrinkProjManageDao; @Autowired private BisInspWateruserInfoDao bisInspWateruserInfoDao; @Autowired private ExcelFieldUtil excelFieldUtil; /** * 6.管理责任体系落实情况表(不合并) * * @param engId engId * @param dir 存放目录 * @param fileName 文件名称 * @return 数据状态 */ @Override public int createBisInspManageResponsibilityExcel(String engId, String dir, String fileName) { OutputStream os = null; //导出 try { BisInspManageResponsibilityParam bisInspManageResponsibilityParam = new BisInspManageResponsibilityParam(); bisInspManageResponsibilityParam.setEngId(engId); // 一页查200条数据 bisInspManageResponsibilityParam.setPageSize(200); Page page = PageHelper.startPage(0, bisInspManageResponsibilityParam.getPageSize()); List data = bisInspManageResponsibilityDao.findList(bisInspManageResponsibilityParam); // 如果没有数据,则直接返回 if (data.size() == 0) { return 0; } // 加载模板 FileInputStream fis = new FileInputStream(templatePath + File.separator + "t6.xls"); HSSFWorkbook fisWorkBook = new HSSFWorkbook(fis); HSSFWorkbook workBook = new HSSFWorkbook(); workBook = fisWorkBook; workBook.setSheetName(0, "管理责任体系落实情况表"); HSSFSheet sheet = workBook.getSheetAt(0); // 如果有数据,则导出到excel File outputFile = new File(dir + fileName + (System.currentTimeMillis()) + ".xls"); os = new FileOutputStream(outputFile); // 导出到excel List> list = excelFieldUtil.getBisInspManageResponsibilityDataList(data); int n = 0; for (int i = 0; i < list.size(); i++) { HSSFRow creRow = sheet.createRow(3 + i); List coVal = new ArrayList<>(list.get(i).values()); for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } n = 3 + i; } int pages = page.getPages(); // 如果大于1页,继续请求剩余页的数据 if (pages > 1) { for (int p = 2; p < pages; p++) { // 请求第二页 bisInspManageResponsibilityParam.setPageNum(p); // 每页200条 PageHelper.startPage(bisInspManageResponsibilityParam.getPageNum(), bisInspManageResponsibilityParam.getPageSize()); list = excelFieldUtil.getBisInspManageResponsibilityDataList(bisInspManageResponsibilityDao.findList(bisInspManageResponsibilityParam)); for (int i = 0; i < list.size(); i++) { // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } // 行数增加1 n = n + 1; } } } workBook.write(os); fis.close(); os.flush(); os.close(); } catch (Exception e) { try { if (os != null) { os.close(); } } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } return 1; } /** * 6.管理责任体系落实情况表(合并,合并是不分区域全放在一个Excel里) * * @param endIdsList 获取数据必须的参数列表 * @param dir 生成Excel的所在目录 * @param fileName 生成的Excel的名称 * @return 数据状态 */ @Override public int createBisInspManageResponsibilitySumExcel(List endIdsList, String dir, String fileName) { OutputStream os = null; int zipStatusT6 = 0; //导出 try { BisInspManageResponsibilityParam bisInspManageResponsibilityParam = new BisInspManageResponsibilityParam(); bisInspManageResponsibilityParam.setEngId(endIdsList.get(0)); // 一页查200条数据 bisInspManageResponsibilityParam.setPageSize(200); Page page = PageHelper.startPage(0, bisInspManageResponsibilityParam.getPageSize()); List data = bisInspManageResponsibilityDao.findList(bisInspManageResponsibilityParam); // 如果没有数据,则直接返回 if (data.size() == 0) { zipStatusT6 = 0; } else { zipStatusT6++; } // 加载模板 FileInputStream fis = new FileInputStream(templatePath + File.separator + "t6.xls"); HSSFWorkbook fisWorkBook = new HSSFWorkbook(fis); HSSFWorkbook workBook = new HSSFWorkbook(); workBook = fisWorkBook; workBook.setSheetName(0, TableEnum.T6.getName()); HSSFSheet sheet = workBook.getSheetAt(0); File outputFile = new File(dir + fileName + (System.currentTimeMillis()) + ".xls"); os = new FileOutputStream(outputFile); // 导出到excel List> list = excelFieldUtil.getBisInspManageResponsibilityDataList(data); int n = 0; for (int i = 0; i < list.size(); i++) { HSSFRow creRow = sheet.createRow(3 + i); List coVal = new ArrayList<>(list.get(i).values()); for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } n = 3 + i; } // 下一页 int pages = page.getPages(); // 如果大于1页,继续请求剩余页的数据 if (pages > 1) { for (int p = 2; p < pages; p++) { // 请求第二页 bisInspManageResponsibilityParam.setPageNum(p); // 每页200条 PageHelper.startPage(bisInspManageResponsibilityParam.getPageNum(), bisInspManageResponsibilityParam.getPageSize()); list = excelFieldUtil.getBisInspManageResponsibilityDataList(bisInspManageResponsibilityDao.findList(bisInspManageResponsibilityParam)); for (int i = 0; i < list.size(); i++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } // workBook.write(os); } } // 如果有多个engId for (int i = 1; i < endIdsList.size(); i++) { // 如果第一个engId没有数据,那么n为0,从第一行开始读,就把表头读没了 if (n == 0) { // 应该是从第3行向下塞数据,因为后面会加1,所以此处取2 n = 2; } bisInspManageResponsibilityParam.setEngId(endIdsList.get(i)); page = PageHelper.startPage(0, bisInspManageResponsibilityParam.getPageSize()); data = bisInspManageResponsibilityDao.findList(bisInspManageResponsibilityParam); list = excelFieldUtil.getBisInspManageResponsibilityDataList(data); // 如果没有数据,则跳过 if (list.size() == 0) { continue; } // 如果有数据 zipStatusT6++; // 如果有数据 for (int i2 = 0; i2 < list.size(); i2++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i2).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } pages = page.getPages(); // 如果超过一页 if (pages > 1) { for (int p = 2; p <= pages; p++) { // 请求第二页 bisInspManageResponsibilityParam.setPageNum(p); // 每页200条 PageHelper.startPage(bisInspManageResponsibilityParam.getPageNum(), bisInspManageResponsibilityParam.getPageSize()); list = excelFieldUtil.getBisInspManageResponsibilityDataList(bisInspManageResponsibilityDao.findList(bisInspManageResponsibilityParam)); for (int i2 = 0; i2 < list.size(); i2++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i2).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } // workBook.write(os); } } } // 最后写入到文件里 workBook.write(os); fis.close(); os.flush(); os.close(); } catch (Exception e) { try { if (os != null) { os.close(); } } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } return zipStatusT6; } /** * 4.农村饮水工程运行管理情况表(不合并) * * @param engId engId * @param dir 存放目录 * @param fileName 文件名称 * @return 数据状态 */ @Override public int createBisInspVlgdrinkProjManageExcel(String engId, String dir, String fileName) { OutputStream os = null; //导出 try { BisInspVlgdrinkProjManageParam bisInspVlgdrinkProjManageParam = new BisInspVlgdrinkProjManageParam(); bisInspVlgdrinkProjManageParam.setEngId(engId); // 一页请求200条 bisInspVlgdrinkProjManageParam.setPageSize(200); Page page = PageHelper.startPage(0, bisInspVlgdrinkProjManageParam.getPageSize()); List data = bisInspVlgdrinkProjManageDao.findList(bisInspVlgdrinkProjManageParam); // 如果没有数据,则直接返回 if (data.size() == 0) { return 0; } // 如果有数据,则导出到excel File outputFile = new File(dir + fileName + (System.currentTimeMillis()) + ".xls"); os = new FileOutputStream(outputFile); // 加载模板 FileInputStream fis = new FileInputStream(templatePath + File.separator + "t4.xls"); HSSFWorkbook fisWorkBook = new HSSFWorkbook(fis); HSSFWorkbook workBook = new HSSFWorkbook(); workBook = fisWorkBook; workBook.setSheetName(0, TableEnum.T4.getName()); HSSFSheet sheet = workBook.getSheetAt(0); // 导出到excel List> list = excelFieldUtil.getBisInspVlgdrinkProjManageDataList(data); int n = 0; for (int i = 0; i < list.size(); i++) { HSSFRow creRow = sheet.createRow(4 + i); List coVal = new ArrayList<>(list.get(i).values()); for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } n = 4 + i; } int pages = page.getPages(); // 如果超过一页,继续导出 if (pages > 1) { for (int p = 2; p < pages; p++) { bisInspVlgdrinkProjManageParam.setPageNum(p); PageHelper.startPage(bisInspVlgdrinkProjManageParam.getPageNum(), bisInspVlgdrinkProjManageParam.getPageSize()); list = excelFieldUtil.getBisInspVlgdrinkProjManageDataList(bisInspVlgdrinkProjManageDao.findList(bisInspVlgdrinkProjManageParam)); for (int i = 0; i < list.size(); i++) { // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } // 行数增加1 n = n + 1; } } } workBook.write(os); fis.close(); os.flush(); os.close(); } catch (Exception e) { try { os.close(); } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } return 1; } /** * 4.农村饮水工程运行管理情况表(合并,合并是不分区域全放在一个Excel里) * * @param endIdsList endIdsList * @param dir 存放目录 * @param fileName 文件名称 * @return 数据状态 */ @Override public int createBisInspVlgdrinkProjManageSumExcel(List endIdsList, String dir, String fileName) { OutputStream os = null; int zipStatusT4 = 0; //导出 try { BisInspVlgdrinkProjManageParam bisInspVlgdrinkProjManageParam = new BisInspVlgdrinkProjManageParam(); bisInspVlgdrinkProjManageParam.setEngId(endIdsList.get(0)); // 一页查200条数据 bisInspVlgdrinkProjManageParam.setPageSize(200); Page page = PageHelper.startPage(0, bisInspVlgdrinkProjManageParam.getPageSize()); List data = bisInspVlgdrinkProjManageDao.findList(bisInspVlgdrinkProjManageParam); // 如果没有数据,则直接返回(合并时不能直接返回,否则下面的数据就获取不到了) if (data.size() != 0) { zipStatusT4++; } // 加载模板 FileInputStream fis = new FileInputStream(templatePath + File.separator + "t4.xls"); HSSFWorkbook fisWorkBook = new HSSFWorkbook(fis); HSSFWorkbook workBook = new HSSFWorkbook(); workBook = fisWorkBook; workBook.setSheetName(0, TableEnum.T4.getName()); HSSFSheet sheet = workBook.getSheetAt(0); File outputFile = new File(dir + fileName + (System.currentTimeMillis()) + ".xls"); os = new FileOutputStream(outputFile); // 导出到excel List> list = excelFieldUtil.getBisInspVlgdrinkProjManageDataList(data); int n = 0; for (int i = 0; i < list.size(); i++) { HSSFRow creRow = sheet.createRow(4 + i); List coVal = new ArrayList<>(list.get(i).values()); for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } n = 4 + i; } // 下一页 int pages = page.getPages(); // 如果大于1页,继续请求剩余页的数据 if (pages > 1) { for (int p = 2; p < pages; p++) { // 请求第二页 bisInspVlgdrinkProjManageParam.setPageNum(p); // 每页200条 PageHelper.startPage(bisInspVlgdrinkProjManageParam.getPageNum(), bisInspVlgdrinkProjManageParam.getPageSize()); list = excelFieldUtil.getBisInspVlgdrinkProjManageDataList(bisInspVlgdrinkProjManageDao.findList(bisInspVlgdrinkProjManageParam)); for (int i = 0; i < list.size(); i++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } // workBook.write(os); } } // 如果有多个engId for (int i = 1; i < endIdsList.size(); i++) { // 如果第一个engId没有数据,那么n为0,从第一行开始读,就把表头读没了 if (n == 0) { // 应该是从第4行向下塞数据,因为后面会加1,所以此处取3 n = 3; } bisInspVlgdrinkProjManageParam.setEngId(endIdsList.get(i)); page = PageHelper.startPage(0, bisInspVlgdrinkProjManageParam.getPageSize()); data = bisInspVlgdrinkProjManageDao.findList(bisInspVlgdrinkProjManageParam); list = excelFieldUtil.getBisInspVlgdrinkProjManageDataList(data); // 如果没有数据,则跳过 if (list.size() == 0) { continue; } // 如果有数据,数据状态加1 zipStatusT4++; // 如果有数据 for (int i2 = 0; i2 < list.size(); i2++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i2).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } pages = page.getPages(); // 如果超过一页 if (pages > 1) { for (int p = 2; p <= pages; p++) { // 请求第二页 bisInspVlgdrinkProjManageParam.setPageNum(p); // 每页200条 PageHelper.startPage(bisInspVlgdrinkProjManageParam.getPageNum(), bisInspVlgdrinkProjManageParam.getPageSize()); list = excelFieldUtil.getBisInspVlgdrinkProjManageDataList(bisInspVlgdrinkProjManageDao.findList(bisInspVlgdrinkProjManageParam)); for (int i2 = 0; i2 < list.size(); i2++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i2).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } // workBook.write(os); } } } // 最后写入到文件里 workBook.write(os); fis.close(); os.flush(); os.close(); } catch (Exception e) { try { if (os != null) { os.close(); } } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } return zipStatusT4; } /** * 3.用水户情况表(不合并) * * @param engId engId * @param dir 存放目录 * @param fileName 文件名称 * @return 数据状态 */ @Override public int createBisInspWateruserInfoExcel(String engId, String dir, String fileName) { OutputStream os = null; //导出 try { BisInspWateruserInfoParam bisInspWateruserInfoParam = new BisInspWateruserInfoParam(); bisInspWateruserInfoParam.setEngId(engId); // 一页请求200条 bisInspWateruserInfoParam.setPageSize(200); Page page = PageHelper.startPage(0, bisInspWateruserInfoParam.getPageSize()); List data = bisInspWateruserInfoDao.findList(bisInspWateruserInfoParam); // 如果没有数据,则直接返回 if (data.size() == 0) { return 0; } // 如果有数据,则导出到excel File outputFile = new File(dir + fileName + (System.currentTimeMillis()) + ".xls"); os = new FileOutputStream(outputFile); // 加载模板 FileInputStream fis = new FileInputStream(templatePath + File.separator + "t3.xls"); HSSFWorkbook fisWorkBook = new HSSFWorkbook(fis); HSSFWorkbook workBook = new HSSFWorkbook(); workBook = fisWorkBook; workBook.setSheetName(0, TableEnum.T3.getName()); HSSFSheet sheet = workBook.getSheetAt(0); // 导出到excel List> list = excelFieldUtil.getBisInspWateruserInfoDataList(data); int n = 0; for (int i = 0; i < list.size(); i++) { HSSFRow creRow = sheet.createRow(3 + i); List coVal = new ArrayList<>(list.get(i).values()); for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } n = 3 + i; } int pages = page.getPages(); // 如果超过一页,继续导出 if (pages > 1) { for (int p = 2; p < pages; p++) { bisInspWateruserInfoParam.setPageNum(p); PageHelper.startPage(bisInspWateruserInfoParam.getPageNum(), bisInspWateruserInfoParam.getPageSize()); list = excelFieldUtil.getBisInspWateruserInfoDataList(bisInspWateruserInfoDao.findList(bisInspWateruserInfoParam)); for (int i = 0; i < list.size(); i++) { // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } // 行数增加1 n = n + 1; } } } workBook.write(os); fis.close(); os.flush(); os.close(); } catch (Exception e) { try { os.close(); } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } return 1; } /** * 3.用水户情况表(合并,合并是不分区域全放在一个Excel里) * * @param endIdsList endIdsList * @param dir 存放目录 * @param fileName 文件名称 * @return 数据状态 */ @Override public int createBisInspWateruserInfoSumExcel(List endIdsList, String dir, String fileName) { OutputStream os = null; int zipStatusT3 = 0; //导出 try { BisInspWateruserInfoParam bisInspWateruserInfoParam = new BisInspWateruserInfoParam(); bisInspWateruserInfoParam.setEngId(endIdsList.get(0)); // 一页查200条数据 bisInspWateruserInfoParam.setPageSize(200); Page page = PageHelper.startPage(0, bisInspWateruserInfoParam.getPageSize()); List data = bisInspWateruserInfoDao.findList(bisInspWateruserInfoParam); // 如果没有数据,则直接返回(合并时不能直接返回,否则下面的数据就获取不到了) if (data.size() == 0) { zipStatusT3 = 0; } else { zipStatusT3++; } // 加载模板 FileInputStream fis = new FileInputStream(templatePath + File.separator + "t3.xls"); HSSFWorkbook fisWorkBook = new HSSFWorkbook(fis); HSSFWorkbook workBook = new HSSFWorkbook(); workBook = fisWorkBook; workBook.setSheetName(0, TableEnum.T3.getName()); HSSFSheet sheet = workBook.getSheetAt(0); File outputFile = new File(dir + fileName + (System.currentTimeMillis()) + ".xls"); os = new FileOutputStream(outputFile); // 导出到excel List> list = excelFieldUtil.getBisInspWateruserInfoDataList(data); int n = 0; for (int i = 0; i < list.size(); i++) { HSSFRow creRow = sheet.createRow(3 + i); List coVal = new ArrayList<>(list.get(i).values()); for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } n = 3 + i; } // 下一页 int pages = page.getPages(); // 如果大于1页,继续请求剩余页的数据 if (pages > 1) { for (int p = 2; p < pages; p++) { // 请求第二页 bisInspWateruserInfoParam.setPageNum(p); // 每页200条 PageHelper.startPage(bisInspWateruserInfoParam.getPageNum(), bisInspWateruserInfoParam.getPageSize()); list = excelFieldUtil.getBisInspWateruserInfoDataList(bisInspWateruserInfoDao.findList(bisInspWateruserInfoParam)); for (int i = 0; i < list.size(); i++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } // workBook.write(os); } } // 如果有多个engId for (int i = 1; i < endIdsList.size(); i++) { // 如果第一个engId没有数据,那么n为0,从第一行开始读,就把表头读没了 if (n == 0) { // 应该是从第3行向下塞数据,因为后面会加1,所以此处取2 n = 2; } bisInspWateruserInfoParam.setEngId(endIdsList.get(i)); page = PageHelper.startPage(0, bisInspWateruserInfoParam.getPageSize()); data = bisInspWateruserInfoDao.findList(bisInspWateruserInfoParam); list = excelFieldUtil.getBisInspWateruserInfoDataList(data); // 如果没有数据,则跳过 if (list.size() == 0) { continue; } // 如果有数据,数据状态加1 zipStatusT3++; // 如果有数据 for (int i2 = 0; i2 < list.size(); i2++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i2).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } pages = page.getPages(); // 如果超过一页 if (pages > 1) { for (int p = 2; p <= pages; p++) { // 请求第二页 bisInspWateruserInfoParam.setPageNum(p); // 每页200条 PageHelper.startPage(bisInspWateruserInfoParam.getPageNum(), bisInspWateruserInfoParam.getPageSize()); list = excelFieldUtil.getBisInspWateruserInfoDataList(bisInspWateruserInfoDao.findList(bisInspWateruserInfoParam)); for (int i2 = 0; i2 < list.size(); i2++) { // 行数增加1 n = n + 1; // 创建行,从第 n 行开始打印 HSSFRow creRow = sheet.createRow(n); List coVal = new ArrayList<>(list.get(i2).values()); // 把每一行的每一列放进去 for (int j = 0; j < coVal.size(); j++) { creRow.createCell(j).setCellValue(coVal.get(j).toString()); } } // workBook.write(os); } } } // 最后写入到文件里 workBook.write(os); fis.close(); os.flush(); os.close(); } catch (Exception e) { try { if (os != null) { os.close(); } } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } return zipStatusT3; } }