Skip to content

開始使用 Excely

Max Zheng edited this page Nov 9, 2023 · 30 revisions

安裝

本套件尚未發布,暫時無法透過 Nuget 安裝。 請下載此專案並以專案參考形式或編譯為 .dll 檔以使用本套件。

開始使用

以下以 EPPlus.LGPL 依賴版本,進行 Excel 匯入、匯出的示範。

匯出

以下的範例展示了如何從 List 匯出為 Excel:

// 創建列表
var students = new List<Student>()
{
    new Student(id: 0, name: "Test1", birthday: DateTime.Now),
    new Student(id: 1, name: "Test2", birthday: DateTime.Now),
};

// 建立匯出 List<Student> 的 exporter
var exporter = ExcelyExporter.FromClassList<Student>();

// 匯出為 Excel
using var excel = exporter.ToExcel(students);

可以看到我們首先呼叫靜態類別 ExcelyExporter 中的 FromClassList<T> 方法, 來創造一個可以輸入 List<T> 的 exporter。

ExcelyExporter 可以幫助您創建各種輸入版本的 exporter。

關於所有支援的資料結構,請參考(尚未編寫)。

FromClassList<T> 有兩個參數可以輸入:

  • options - 此參數讓您可以自定義匯出流程的邏輯,詳細的使用方式請參考(尚未編寫)。
  • shaders - 此參數讓您在匯出後,能使用 shader 來依序調整匯出結果。關於 shader 的用法,請參考(尚未編寫)。

ToExcel 則可以輸入要匯出的資料作為參數,以及定義匯出時工作表的名稱(可選)。

ToExcel 實際上是 ToWorksheet 的包裝,若您已經有想匯出的目標 worksheet,請考慮改用 ToWorksheet

匯入

以下的範例展示了如何從 worksheet 匯入為 List:

// 接續匯出章節匯出的檔案
var worksheet = excel.Workbook.Worksheets.First();

// 建立接受 worksheet 的 importer
var importer = new XlsxImporter();

// 匯入為 IEnumerable<Student>
var importResult = importer.ToClassList<Student>(worksheet);

與匯出時不同,這裡我們不是呼叫靜態類別來產生 importer,而是直接建立一個特定的 importer 物件, 這是因為匯入來源通常都是由套件依賴版本(如本例中的 Excely.EPPlus.LGPL)提供。

此處的 new XlsxImporter() 建構子可以輸入兩種參數:

  • startCell - 代表開始讀取來源的座標。若不填則從 worksheet 的最左上角開始讀取。
  • endCell - 代表強制結束讀取的座標,只會讀取 startCell 到 endCell 間的內容。若不填則不設限。

ToClassList 則可以輸入來源資料及自定義的轉換邏輯(可選)。

關於 option 參數的詳細使用方式請參考(尚未編寫)。

進階技巧

若您希望了解更多使用 Excely 的方式,請參考(尚未編寫)

Clone this wiki locally