企业网站要怎么建设,汉鼎中国 网站建设,国外虚拟主机wordpress,wordpress模板原理Apache POI是一个开源的、用来读写微软Excel文件的Java工具包#xff0c;一般用来读取Excel文件中的数据或者将数据导出到Excel文件。HSSFWorkbook用来处理早期版本的Excel文件#xff08;xls格式#xff09;#xff0c;而XSSFWorkbook用来处理新版本Excel文#xff08;xl…Apache POI是一个开源的、用来读写微软Excel文件的Java工具包一般用来读取Excel文件中的数据或者将数据导出到Excel文件。HSSFWorkbook用来处理早期版本的Excel文件xls格式而XSSFWorkbook用来处理新版本Excel文xlsx格式。
Apache POI包中的HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook的区别如下:
HSSFWorkbook一般用于操作Excel2003以前包括2003的版本扩展名是.xls。XSSFWorkbook一般用于操作Excel2007及以上的版本扩展名是.xlsx。SXSSFWorkbookPOI 3.8版本一般用于大数据量的导出。比如数据量超过5000条即可考虑这种工作表 ———————————————— 引用原文链接https://blog.csdn.net/wh445306/article/details/103755283
使用SXSSFWorkbook导出Excel的代码如下
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.File;
import java.io.FileOutputStream;
import java.util.List;/*** 将数据导出成Excel文件使用Apache POI组件。* Java POI三种WorkbookHSSFworkbook,XSSFworkbook,SXSSFworkbook主要区别https://blog.csdn.net/wh445306/article/details/103755283*/
public class ExportExcelUtil {private static final Logger logger LoggerFactory.getLogger(ExportExcelUtil.class);/*** 创建Excel文件内容并写入本地文件。** param headers Excel表格头* param cellList Excel表格数据内容* param path 存储路径如D:/xxx.xlsx*/public static void writeExcelToFile(String[] headers, ListObject[] cellList, String path) {FileOutputStream fos null;try {File excelFile new File(path);fos new FileOutputStream(excelFile);//使用SXSSFWorkbook导出数据可以防止数据量过大时内存被耗尽问题SXSSFWorkbook swb new SXSSFWorkbook(); //一般用于大数据量的导出比如数据量超过5000条即可考虑这种工作表SXSSFSheet sheet swb.createSheet(Sheet1);DataFormat format swb.createDataFormat();CellStyle style swb.createCellStyle();style.setAlignment(HorizontalAlignment.LEFT); //单元格左对齐style.setDataFormat(format.getFormat()); //设置单元格为文本格式SXSSFRow headerRow sheet.createRow(0); //第一行标题部分for (int i 0; i headers.length; i) {String headerName headers[i];SXSSFCell cell headerRow.createCell(i); //从0开始cell.setCellValue(headerName);cell.setCellType(CellType.STRING); //单元格内容为文本类型cell.setCellStyle(style);}int dataRow 1; //数据部分从第2行开始for (Object[] objArr : cellList) {SXSSFRow row sheet.createRow(dataRow); //创建一行for (int i 0; i objArr.length; i) {String text objArr[i] ! null ? objArr[i].toString() : ;SXSSFCell cell row.createCell(i); //从0开始cell.setCellValue(text);cell.setCellStyle(style);}dataRow;}swb.write(fos);fos.flush();}catch (Exception e) {logger.error([writeExcelToFile][path:{}][ERROR:{}], path, e.getMessage(), e);}finally {try {if (fos ! null) {fos.close();}} catch (Exception e) {logger.error([writeExcelToFile][close IOException:{}], e.getMessage(), e);}}}
}
参考文章
参考了文章Java POI三种WorkbookHSSFworkbook,XSSFworkbook,SXSSFworkbook主要区别 https://blog.csdn.net/wh445306/article/details/103755283