百万数据报表导出:使用SXSSFWorkbook完成百万数据报表打印
生活随笔
收集整理的這篇文章主要介紹了
百万数据报表导出:使用SXSSFWorkbook完成百万数据报表打印
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在原有代碼的基礎上替換之前的XSSFWorkbook,使用SXSSFWorkbook完成創建過程即可
/*** 當月人事報表導出* 參數:* 年月-月(2018-02%)*/ @RequestMapping(value = "/export/{month}", method = RequestMethod.GET) public void export(@PathVariable String month) throws Exception {//1.獲取報表數據List<EmployeeReportResult> list = userCompanyPersonalService.findByReport(companyId,month);//2.構造Excel//創建工作簿//SXSSFWorkbook : 百萬數據報表//Workbook wb = new XSSFWorkbook();SXSSFWorkbook wb = new SXSSFWorkbook(100); //閾值,內存中的對象數量最大數量//構造sheetSheet sheet = wb.createSheet();//創建行//標題String [] titles = "編號,姓名,手機,最高學歷,國家地區,護照號,籍貫,生日,屬相,入職時間,離職類型,離職原因,離職時間".split(",");//處理標題Row row = sheet.createRow(0);int titleIndex=0;for (String title : titles) {Cell cell = row.createCell(titleIndex++);cell.setCellValue(title);}int rowIndex = 1;Cell cell=null;for(int i=0;i<10000;i++){for (EmployeeReportResult employeeReportResult : list) {row = sheet.createRow(rowIndex++);// 編號,cell = row.createCell(0);cell.setCellValue(employeeReportResult.getUserId());// 姓名,cell = row.createCell(1);cell.setCellValue(employeeReportResult.getUsername());// 手機,cell = row.createCell(2);cell.setCellValue(employeeReportResult.getMobile());// 最高學歷,cell = row.createCell(3);cell.setCellValue(employeeReportResult.getTheHighestDegreeOfEducation());// 國家地區,cell = row.createCell(4);cell.setCellValue(employeeReportResult.getNationalArea());// 護照號,cell = row.createCell(5);cell.setCellValue(employeeReportResult.getPassportNo());// 籍貫,cell = row.createCell(6);cell.setCellValue(employeeReportResult.getNativePlace());// 生日,cell = row.createCell(7);cell.setCellValue(employeeReportResult.getBirthday());// 屬相,cell = row.createCell(8);cell.setCellValue(employeeReportResult.getZodiac());// 入職時間,cell = row.createCell(9);cell.setCellValue(employeeReportResult.getTimeOfEntry());// 離職類型,cell = row.createCell(10);cell.setCellValue(employeeReportResult.getTypeOfTurnover());// 離職原因,cell = row.createCell(11);cell.setCellValue(employeeReportResult.getReasonsForLeaving());// 離職時間cell = row.createCell(12);cell.setCellValue(employeeReportResult.getResignationTime());}}//3.完成下載ByteArrayOutputStream os = new ByteArrayOutputStream();wb.write(os);new DownloadUtils().download(os,response,month+"人事報表.xlsx"); }?
總結
以上是生活随笔為你收集整理的百万数据报表导出:使用SXSSFWorkbook完成百万数据报表打印的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百万数据报表导出:需求以及思路分析
- 下一篇: 百万数据报表读取:步骤分析以及自定义事件