首页 > 社交 > 科普中国

POI导入导出百万级数据Excel

常驻编辑 科普中国 2022-05-17 表头   空行   级数   扩展名   字符串   标识   索引   类型   文件   内容   数据
< len) { if (isPre) { for (int i = 0; i < (len - len_1); i++) { str = let + str; } } else { for (int i = 0; i < (len - len_1); i++) { str = str + let; } } } return str; } private int nameToColumn(String name) { int column = -1; for (int i = 0; i < name.length(); ++i) { int c = name.charAt(i); column = (column + 1) * 26 + c - 'A'; } return column; } /** * @return the exceptionMessage */ public String getExceptionMessage() { return exceptionMessage; } /** * 表头数据 * * @param filePath * @param sheetName * @param sheetIndex * @param curRow * @param cellList */ public void sendHeaderRows(String filePath, String sheetName, int sheetIndex, int curRow, List cellList) { } /** * 解析数据 * * @param filePath * @param sheetName * @param sheetIndex * @param curRow * @param cellList */ public void sendDataRows(String filePath, String sheetName, int sheetIndex, int curRow, List cellList) { } }

三、导出Evj拜客生活常识网

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;

import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;

/**
 * EXCEL导出
 */
public class BigExcelExportUtil {
    /**
     * 私有构造函数
     */
    private BigExcelExportUtil() {
    }

    /**
     * 构造EXCEL,并响应客户端
     * <功能详细描述>
     *
     * @param listValues
     * @param fileName
     * @param sheetName
     * @param cellTitle
     * @param cellValue
     * @param res
     * @see [类、类#方法、类#成员]
     */
    public static void buildXSLXExcel(List> listValues, String fileName, String sheetName, String[] cellTitle,
                                      String[] cellValue, HttpServletResponse res) {
        byte[] bytes = buildXSLXExcelWithSheetName(listValues, sheetName, cellTitle, cellValue);
        if (0 == bytes.length) {
            return;
        }
        writeDocResponse(res, bytes, fileName);
    }

    /**
     * 构建EXCEL
     * <功能详细描述>
     *
     * @param listValues
     * @param sheetName
     * @param cellTitle
     * @param cellValue
     * @see [类、类#方法、类#成员]
     */
    public static byte[] buildXSLXExcelWithSheetName(List> listValues, String sheetName, String[] cellTitle,
                                                     String[] cellValue) {
        try (ByteArrayOutputStream outStream = new ByteArrayOutputStream();
             SXSSFWorkbook workBook = createExcelBook(listValues, sheetName, cellTitle, cellValue);) {
            workBook.write(outStream);
            outStream.flush();
            workBook.dispose();
            return outStream.toByteArray();
        } catch (Exception e) {
            e.printStackTrace();
            return new byte[0];
        }
    }

    /**
     * 生成WorkBook
     * <功能详细描述>
     *
     * @param listValues
     * @param sheetName
     * @param cellTitle
     * @param cellValue
     * @return
     * @see [类、类#方法、类#成员]
     */
    private static SXSSFWorkbook createExcelBook(List> listValues, String sheetName, String[] cellTitle,
                                                 String[] cellValue) {
        //创建工作薄
        SXSSFWorkbook workBook = new SXSSFWorkbook();
        Sheet sheet = workBook.createSheet();

        //工作簿名称
        workBook.setSheetName(0, sheetName);

        //字体设置
        Font font = workBook.createFont();
        font.setColor(XSSFFont.COLOR_NORMAL);
        //font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
        font.setBold(true);
        //创建格式
        XSSFCellStyle cellStyle = (XSSFCellStyle) workBook.createCellStyle();
        cellStyle.setFont(font);
        //cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        cellStyle.setAlignment(HorizontalAlignment.CENTER);
        //cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);

        //创建第一行标题
        Row titleRow = sheet.createRow((short) 0);
        for (int i = 0; i < cellTitle.length; i++) {
            //创建第1行标题单元格
            sheet.setColumnWidth(i, 20 * 256);
            //XSSFCell cell = titleRow.createCell(i, 0);
            Cell cell = titleRow.createCell(i, CellType.STRING);
            cell.setCellStyle(cellStyle);
            //cell.setCellType(XSSFCell.CELL_TYPE_STRING);
            cell.setCellType(CellType.STRING);
            cell.setCellValue(cellTitle[i]);
        }

        //第二行开始写入数据
        if (listValues != null && listValues.size() > 0) {
            //创建格式
            XSSFCellStyle style = (XSSFCellStyle) workBook.createCellStyle();
            //遍历列表数据
            for (int i = 0; i     

相关阅读:

  • 如何打印表头(打印表格表头怎么每页都有)
  • 有了这个开源工具后,我五点就下班了
  • 行动
  • 加拿大枫叶卡续签、补发、补发—IMM5444表填写指南
  • Linux
  • 如何输入字符串(python如何输入字符串)
  • 如何设置条件格式(如何输入数字字符串)
  • 「数据结构之字典树Trie」C语言版本实现
  • #汇编语言#课程设计1#王爽著
  • JavaScript中的数据类型判断
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。