使用SXSSFWorkbook导出Excel文件的简单实例和操作步骤

分类:知识百科 日期: 点击:0

SXSSFWorkbook是Apache POI提供的一种用于导出大量Excel文件的解决方案,它可以有效的避免内存溢出的问题,使用它可以轻松地创建大型的Excel文件。下面我们来看看如何。

环境准备

1. 导入依赖


	org.apache.poi
	poi
	4.1.2


	org.apache.poi
	poi-ooxml
	4.1.2

2. 导入包

import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;

编写实现类

public class ExcelExportUtil {
    /**
     * 使用SXSSFWorkbook导出Excel文件
     * @param dataList 数据集合
     * @param sheetName sheet名称
     * @param columnNames 列名称
     * @param columnWidths 列宽度
     * @return SXSSFWorkbook
     */
    public static SXSSFWorkbook exportExcel(List dataList, String sheetName, String[] columnNames, int[] columnWidths) {
        SXSSFWorkbook wb = new SXSSFWorkbook();
        Sheet sheet = wb.createSheet(sheetName);
        //设置列宽
        for (int i = 0; i < columnWidths.length; i++) {
            sheet.setColumnWidth(i, columnWidths[i]);
        }
        //创建标题行
        Row row = sheet.createRow(0);
        for (int i = 0; i < columnNames.length; i++) {
            row.createCell(i).setCellValue(columnNames[i]);
        }
        //填充数据
        for (int i = 0; i < dataList.size(); i++) {
            Row dataRow = sheet.createRow(i + 1);
            List data = dataList.get(i);
            for (int j = 0; j < data.size(); j++) {
                dataRow.createCell(j).setCellValue(String.valueOf(data.get(j)));
            }
        }
        return wb;
    }
}


调用方法

//准备数据
List> dataList = new ArrayList<>();
dataList.add(Arrays.asList("张三", 20, "男"));
dataList.add(Arrays.asList("李四", 21, "女"));
dataList.add(Arrays.asList("王五", 22, "男"));

//设置列名称和列宽度
String[] columnNames = {"姓名", "年龄", "性别"};
int[] columnWidths = {20 * 256, 10 * 256, 10 * 256};

//调用导出方法
SXSSFWorkbook wb = ExcelExportUtil.exportExcel(dataList, "用户列表", columnNames, columnWidths);

//保存到文件
try (FileOutputStream out = new FileOutputStream("D:/user.xlsx")) {
    wb.write(out);
} catch (IOException e) {
    e.printStackTrace();
}

上面就是,它的使用非常简单,只需要准备好数据,设置列名称和列宽度,调用导出方法,将生成的SXSSFWorkbook保存到文件即可。


标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。