Class WorkbookReader

java.lang.Object
io.leandev.appfuse.workbook.WorkbookReader

public class WorkbookReader extends Object

工作表讀取器

Worksheet 逐列讀出 WorkbookRecord,提供多種讀取模式:

讀取會自動跳過空白列。呼叫 readHeaders() 後,第一列作為 Header, 後續讀取從第二列開始,並可在 WorkbookRecord 上以欄位名稱存取。

使用範例

try (Workbook workbook = Workbook.open(inputStream)) {
    WorkbookReader reader = new WorkbookReader(workbook.getSheetAt(0));
    reader.readHeaders();

    for (WorkbookRecord record = reader.read(); record != null; record = reader.read()) {
        String name = record.getAsString("Name");
        BigDecimal price = record.getAsBigDecimal("Price");
    }
}
Since:
4.0.0
  • Constructor Details

    • WorkbookReader

      public WorkbookReader(Worksheet worksheet)
      建構讀取器
      Parameters:
      worksheet - 來源工作表
  • Method Details

    • readHeaders

      public List<String> readHeaders()
      讀取第一列作為 Header 呼叫後 read() 將從下一列開始,並可用欄位名稱存取記錄。
      Returns:
      Header 欄位列表
    • setHeaders

      public void setHeaders(List<String> headers)
      手動設定 Header(適用於無 Header 列的工作表)
      Parameters:
      headers - Header 欄位列表
    • getHeaders

      public List<String> getHeaders()
      取得目前 Header
      Returns:
      Header 欄位列表
    • read

      public WorkbookRecord read()
      讀取下一筆資料(自動跳過空白列)
      Returns:
      資料記錄,已讀完則回傳 null
    • readAll

      public List<WorkbookRecord> readAll()
      讀取所有資料 注意:此方法會將所有資料載入記憶體。
      Returns:
      所有資料記錄
    • stream

      public Stream<WorkbookRecord> stream()
      取得串流,用於函數式處理
      Returns:
      資料記錄串流