Class WorkbookWriter

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

public class WorkbookWriter extends Object

工作表寫入器

將資料逐列寫入 Worksheet,支援:

CsvWriter 同樣的 Header 驅動序列化慣例。

使用範例

try (Workbook workbook = Workbook.create();
     OutputStream os = new FileOutputStream("products.xlsx")) {

    WorkbookWriter writer = new WorkbookWriter(workbook.createSheet("Products"));
    writer.writeHeaders("id", "name", "price");
    products.forEach(writer::write);   // 依 Header 順序自動提取物件屬性

    workbook.autoSizeColumns();
    workbook.write(os);
}
Since:
4.0.0
  • Constructor Details

    • WorkbookWriter

      public WorkbookWriter(Worksheet worksheet)
      建構寫入器
      Parameters:
      worksheet - 目標工作表
  • Method Details

    • writeHeaders

      public void writeHeaders(String... headers)
      寫入 Header 列並設定欄位
      Parameters:
      headers - Header 欄位陣列
    • writeHeaders

      public void writeHeaders(List<String> headers)
      寫入 Header 列並設定欄位
      Parameters:
      headers - Header 欄位列表
    • setHeaders

      public void setHeaders(List<String> headers)
      設定 Header 欄位(不寫入列) 注意:此方法會建立新的清單,而非累加。
      Parameters:
      headers - Header 欄位列表
    • getHeaders

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

      public void write(List<?> values)
      寫入一筆資料(List 格式)
      Parameters:
      values - 一列的值
    • write

      public void write(@NonNull Object data)
      寫入一筆資料(物件格式) 透過 PropertyMap 提取屬性:已設定 Header 時依其順序取值; 否則以屬性名稱排序並設為 Header。
      Parameters:
      data - 物件資料