poi生成excel文件小结

1,663 阅读1分钟

导出excel文件的小结

maven依赖

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>${poi.version}</version>
        </dependency>

运用 直接上代码

直接生成excel文件

		Excel excel = new ExcelBuilder()
                .createWorkBook("excel1.xlsx") //创建workbook
                .createSheet("sheet1")  //添加sheet1
                .createSheet("sheet2")  //添加sheet2
                .build();
        try {
            String[] titles1 = new String[]{"1", "2"};
            String[] titles2 = new String[]{"b1", "b2", "b3", "b4", "b5"};

            List<Object[]> datas = new ArrayList<Object[]>();
            datas.add(new Object[]{1, 2, 3, 4, 5, 6});

            //合并单元格
            List<CellRangeAddress> cellRangeAddresses = new ArrayList<CellRangeAddress>();
            cellRangeAddresses.add(new CellRangeAddress(0, 0, 1, 2));

            //为sheet1添加header 添加数据
            new SheetBuilder(excel.getSheet("sheet1"))
                    .addHeader(0, titles1)
                    .addContentData(null, datas, 1);
            //为sheet2添加header  添加数据 合并单元格操作
            new SheetBuilder(excel.getSheet("sheet2"))
                    .addHeader(0, titles2)
                    .addContentData(null, datas, 1)
                    .addMergeCells(cellRangeAddresses);

            //输出excel到指定文件
            excel.write("D:\\", System.currentTimeMillis() + "tmp.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
        }

根据已有的excel模板填充数据得到导出文件

	    public ExcelParser parse(String fileName) throws IOException {
	        if (fileName.endsWith(".xls")) {
	            workbook = new HSSFWorkbook(
	                    Thread.currentThread().getContextClassLoader().getResourceAsStream("templates/" + fileName));
	        } else {
	            workbook = new XSSFWorkbook(
	                    Thread.currentThread().getContextClassLoader().getResourceAsStream("templates/" + fileName));
	        }
	        return this;
	    }

        Workbook workbook = new ExcelParser().parse("temp.xlsx").getWorkbook();//解析指定文件为workbook
        Sheet sheet = workbook.getSheet("删除的"); //获取指定sheet
        Cell cell = sheet.getRow(0).createCell(0); //创建单元格
        cell.setCellValue(time); //为单元格设置内容
        Excel excel = new ExcelBuilder(workbook).build(); //
        excel.write("D:\\", "tmp" + time + ".xlsx"); //输出填充数据之后的excel文件

注意以上代码用到的类可以在github对应的excel-tools module找到 demo

--------------------------end-------------------------

对你有帮助的话,记得点个赞👍

  • [六十七点五 ]

--------------------------end-------------------------