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

相關文章
相關標籤/搜索