POI關於HSSF和XSSF功能開發指南
阿新 • • 發佈:2020-08-26
ps: 以下功能針對版本 4.0+
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0</version> </dependency>
poi也有兩個不同的jar包,分別是處理excel2003和excel2007+的,對應的是poi和poi-ooxml。
畢竟poi-ooxml是poi的升級版本,處理的單頁資料量也是百萬級別的,所以我們選擇的也是poi-ooxml
1.如何建立一個新的工作簿
1 Workbook wb = new HSSFWorkbook(); 2 ... 3 try (OutputStream fileOut = new FileOutputStream("workbook.xls")) { 4 wb.write(fileOut); 5 } 6 Workbook wb = new XSSFWorkbook(); 7 ... 8 try (OutputStream fileOut = new FileOutputStream("workbook.xlsx")) { 9 wb.write(fileOut);10 } 11
2.如何建立工作表
Workbook wb = new HSSFWorkbook(); // or new XSSFWorkbook(); Sheet sheet1 = wb.createSheet("new sheet"); Sheet sheet2 = wb.createSheet("second sheet"); //請注意,工作表名稱為Excel不得超過31個字元 //,且不得包含以下任何字元: // 0x0000 // 0x0003 //冒號(:) //反斜槓(\) //星號(*) //問號(?) //正斜槓(/) //開啟方括號([) //右方括號(]) //您可以使用org.apache.poi.ss.util.WorkbookUtil#createSafeSheetName(String nameProposal)}//為了安全地建立有效名稱,此實用程式將無效字元替換為空格('') String safeName = WorkbookUtil.createSafeSheetName("[O'Brien's sales*?]"); // returns " O'Brien's sales " Sheet sheet3 = wb.createSheet(safeName); try (OutputStream fileOut = new FileOutputStream("workbook.xls")) { wb.write(fileOut); }
3.如何建立細胞
Workbook wb = new HSSFWorkbook(); //Workbook wb = new XSSFWorkbook(); CreationHelper createHelper = wb.getCreationHelper(); Sheet sheet = wb.createSheet("new sheet"); //建立一行並在其中放入一些單元格。行從0開始。 Row row = sheet.createRow(0); //建立一個單元格並在其中放置一個值。 Cell cell = row.createCell(0); cell.setCellValue(1); //或一行完成。 row.createCell(1).setCellValue(1.2); row.createCell(2).setCellValue( createHelper.createRichTextString("This is a string")); row.createCell(3).setCellValue(true); //將輸出寫入檔案 try (OutputStream fileOut = new FileOutputStream("workbook.xls")) { wb.write(fileOut); }