poi生成excel文件小结

导出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找到 demogit

有问题及其余更好的内容欢迎留言交流~github

相关文章
相关标签/搜索