Java导出大数据量到Excel文件拆分数据到不同sheet页

public class PersonalHSCodeExportUtil {

    private PersonalHSCodeExportUtil() {
    }

    public static Workbook getWorkbook(List list) {
        SimpleDateFormat sdftime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Workbook workbook = new HSSFWorkbook();
        String title = "mySheet";

        int rowNum = 2;
        int num = 1;// 数据序号
        Row row;
        int sheetNum = 1;
        Sheet sheet = createSheet(workbook, title + sheetNum);
        sheetNum++;

        for (PersonalHSCode domain : list) {
            if (domain == null) {
                continue;
            }
            if (rowNum % 30002 == 0) {
                sheet = createSheet(workbook, title + sheetNum);
                rowNum = 2;
                sheetNum++;
            }
            row = sheet.createRow(rowNum);
            row.createCell(0).setCellValue(num);
            row.createCell(1).setCellValue(dealNullString(domain.getProductcode()));
            row.createCell(2).setCellValue(dealNullString(domain.getGoodsname()));
            rowNum++;
            num++;
        }

        return workbook;
    }

    private static Sheet createSheet(Workbook workbook, String title) {
        Sheet sheet = workbook.createSheet(title);
        // 设置表头
        Row headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("序号");
        headerRow.createCell(1).setCellValue("个人物品税号");
        headerRow.createCell(2).setCellValue("商品名称");
        Row headerRowKey = sheet.createRow(1);
        headerRowKey.createCell(0).setCellValue("NO.");
        headerRowKey.createCell(1).setCellValue("productcode");
        headerRowKey.createCell(2).setCellValue("goodsname");
        return sheet;
    }

    private static String dealNullString(String str) {

        if (StringUtils.isBlank(str)) {
            return "";
        }
        return str;
    }

你可能感兴趣的:(导出Excel)