1. 程式人生 > 實用技巧 >報表讀寫 - POI概述

報表讀寫 - POI概述

報表讀寫 - POI

報表:簡單的說,報表就是用表格、圖表等格式來動態顯示資料,可以用公式表示為:“報表 = 多樣的格式 + 動態的資料”。

報表的種類有很多:Excel報表,PDF報表,網頁報表等,他們各有優缺點

在本課程中,我們主要來將Excel報表。

對於Excel報表的技術實現上也有很多種選擇:

  • JXL:支援xls檔案操作
  • POI:支援xls和xlsx檔案操作

我們只要來講POI技術,要使用POI就要匯入其座標,如下

<!--POI-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>4.0.1</version>
</dependency>

1.1 POI寫Excel檔案

在測試包下建立POI測試類:com.itheima.service.store.PoiTest

public class PoiTest {

    @Test
    public void testWriteByPoi() throws IOException {
        //1.獲取到對應的Excel檔案,工作簿檔案
        Workbook wb = new XSSFWorkbook();
        //2.建立工作表
        Sheet sheet = wb.createSheet();
        wb.createSheet("這是啥呀");

        //3.建立工作表中的行物件
        Row row = sheet.createRow(1);
        //4.建立工作表中行中的列物件
        Cell cell = row.createCell(1);
        //5.在列中寫資料
        cell.setCellValue("測試一下單元格");

        //建立一個檔案物件,作為excel檔案內容的輸出檔案
        File f = new File("test.xlsx");
        //輸出時通過流的形式對外輸出,包裝對應的目標檔案
        OutputStream os = new FileOutputStream(f);
        //將記憶體中的workbook資料寫入到流中
        wb.write(os);
        wb.close();
        os.close();
    }
}

使用單元測試進行測試!

1.2 POI讀Excel檔案

建立讀Excel的測試方法:testReadByPoi

@Test
public void testReadByPoi() throws IOException {
    //1.獲取要讀取的檔案工作簿物件
    Workbook wb = new XSSFWorkbook("test.xlsx");
    //2.獲取工作表
    Sheet s = wb.getSheetAt(0);
    //3.獲取行
    Row row = s.getRow(3);
    //4.獲取列
    Cell cell = row.getCell(1);
    //5.根據資料的型別獲取資料
    //        String data = cell.getStringCellValue();
    //        double data = cell.getNumericCellValue();
    boolean data = cell.getBooleanCellValue();

    System.out.println(data);

    wb.close();
}

直接讀取第一節建立好的Excel檔案