Commit bfc23157 by 1244575290@qq.com

分页导出

parent fab725fb
...@@ -28,6 +28,10 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment; ...@@ -28,6 +28,10 @@ import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFCell;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
...@@ -57,6 +61,7 @@ public class ExcelExportor { ...@@ -57,6 +61,7 @@ public class ExcelExportor {
private static final Logger logger = LoggerFactory.getLogger(ExcelExportor.class); private static final Logger logger = LoggerFactory.getLogger(ExcelExportor.class);
private static String excelSuffixName = "xls"; private static String excelSuffixName = "xls";
public static HashMap<String, XSSFWorkbook> XSSF_WORK_BOOK_MAP = new HashMap<String, XSSFWorkbook>(); public static HashMap<String, XSSFWorkbook> XSSF_WORK_BOOK_MAP = new HashMap<String, XSSFWorkbook>();
public static HashMap<String, SXSSFWorkbook> SXSSF_WORK_BOOK_MAP = new HashMap<>();
/** /**
* 生成excel * 生成excel
...@@ -99,7 +104,6 @@ public class ExcelExportor { ...@@ -99,7 +104,6 @@ public class ExcelExportor {
* *
* @author linweibin * @author linweibin
* @date 2017年5月22日 下午5:22:38 * @date 2017年5月22日 下午5:22:38
* @param fileName
* @param dataMap * @param dataMap
* @param templateName * @param templateName
* @return * @return
...@@ -235,8 +239,6 @@ public class ExcelExportor { ...@@ -235,8 +239,6 @@ public class ExcelExportor {
* *
* @author linweibin * @author linweibin
* @date 2017年4月19日 下午4:35:58 * @date 2017年4月19日 下午4:35:58
* @param response
* @param fileName
* @param tempFileName * @param tempFileName
*/ */
public static String uploadFile(String tempFileName) { public static String uploadFile(String tempFileName) {
...@@ -265,7 +267,7 @@ public class ExcelExportor { ...@@ -265,7 +267,7 @@ public class ExcelExportor {
String title = exportDto.getTitle(); String title = exportDto.getTitle();
String[] rowsName = exportDto.getRowsName(); String[] rowsName = exportDto.getRowsName();
List<Object[]> dataList = exportDto.getDataList(); List<Object[]> dataList = exportDto.getDataList();
XSSFWorkbook workbook = getWorkbook(title, rowsName, dataList, UID); SXSSFWorkbook workbook = getWorkbook(title, rowsName, dataList, UID);
if(exportDto.getIsOver()){ if(exportDto.getIsOver()){
String tempFilePath = UID + ".xlsx"; String tempFilePath = UID + ".xlsx";
try { try {
...@@ -281,7 +283,7 @@ public class ExcelExportor { ...@@ -281,7 +283,7 @@ public class ExcelExportor {
throw new ExportException(ExportException.OPERATE_ERROR, "导出Excel失败"); throw new ExportException(ExportException.OPERATE_ERROR, "导出Excel失败");
} }
String filePath = uploadExcel(tempFilePath, title); String filePath = uploadExcel(tempFilePath, title);
XSSF_WORK_BOOK_MAP.remove(UID); SXSSF_WORK_BOOK_MAP.remove(UID);
logger.info("excel导出成功++++++++++" + filePath); logger.info("excel导出成功++++++++++" + filePath);
return filePath; return filePath;
} }
...@@ -296,22 +298,22 @@ public class ExcelExportor { ...@@ -296,22 +298,22 @@ public class ExcelExportor {
* @param UID * @param UID
* @throws BizException * @throws BizException
*/ */
private static XSSFWorkbook getWorkbook(String title, String[] rowsName, List<Object[]> dataList,String UID) throws BizException { private static SXSSFWorkbook getWorkbook(String title, String[] rowsName, List<Object[]> dataList,String UID) throws BizException {
XSSFWorkbook workbook; SXSSFWorkbook workbook;
logger.info("WORK_BOOK_MAP++++++" + XSSF_WORK_BOOK_MAP); logger.info("WORK_BOOK_MAP++++++" + SXSSF_WORK_BOOK_MAP);
workbook = XSSF_WORK_BOOK_MAP.get(UID); workbook = SXSSF_WORK_BOOK_MAP.get(UID);
XSSF_WORK_BOOK_MAP.remove(UID); SXSSF_WORK_BOOK_MAP.remove(UID);
if(null == workbook){ if(null == workbook){
// 声明一个工作簿 // 声明一个工作簿
workbook = new XSSFWorkbook(); workbook = new SXSSFWorkbook();
// 表格列数 // 表格列数
int columnNum = rowsName.length; int columnNum = rowsName.length;
//设置表头样式 //设置表头样式
CellStyle headerStyle = getColumnTopStyle(workbook); CellStyle headerStyle = getColumnTopStyle(workbook);
//新建sheet //新建sheet
XSSFSheet sheet = workbook.createSheet(); SXSSFSheet sheet = workbook.createSheet();
XSSFRow row = null; SXSSFRow row = null;
XSSFCell cell = null; SXSSFCell cell = null;
int rowIndex = 0; int rowIndex = 0;
//设置标题 //设置标题
row = sheet.createRow(rowIndex); row = sheet.createRow(rowIndex);
...@@ -349,13 +351,13 @@ public class ExcelExportor { ...@@ -349,13 +351,13 @@ public class ExcelExportor {
}; };
} }
} }
XSSF_WORK_BOOK_MAP.put(UID, workbook); SXSSF_WORK_BOOK_MAP.put(UID, workbook);
}else{ }else{
XSSFSheet sheet = workbook.getSheetAt(0); SXSSFSheet sheet = workbook.getSheetAt(0);
int lastRowIndex = sheet.getLastRowNum(); int lastRowIndex = sheet.getLastRowNum();
logger.info("lastRowIndex+++++"+lastRowIndex); logger.info("lastRowIndex+++++"+lastRowIndex);
XSSFRow row = null; SXSSFRow row = null;
XSSFCell cell = null; SXSSFCell cell = null;
//设置数据样式 //设置数据样式
CellStyle dataStyle = getDataStyle(workbook); CellStyle dataStyle = getDataStyle(workbook);
dataStyle.setAlignment(HorizontalAlignment.CENTER); dataStyle.setAlignment(HorizontalAlignment.CENTER);
...@@ -380,7 +382,7 @@ public class ExcelExportor { ...@@ -380,7 +382,7 @@ public class ExcelExportor {
}; };
} }
} }
XSSF_WORK_BOOK_MAP.put(UID, workbook); SXSSF_WORK_BOOK_MAP.put(UID, workbook);
} }
return workbook; return workbook;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment