-
Notifications
You must be signed in to change notification settings - Fork 1
開始使用 Excely
Max Zheng edited this page Jan 15, 2024
·
30 revisions
此套件目前為搶鮮版
若您僅使用 CSV 相關功能,請執行以下指令以下載 Excely 本體:
dotnet add package Excely --version 0.1.0-alpha
若您想要使用 Excel 相關功能,請根據您偏好的依賴套件選擇對應的版本:
dotnet add package Excely.LGPL.EPPlus --version 0.1.0-alpha
dotnet add package Excely.ClosedXML --version 0.1.0-alpha
以下以 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
則可以輸入以下參數:
-
sourceData
- 匯入資料來源。 -
worksheetName
- 匯出時創建的工作表名稱。 -
startCell
- 開始匯出的座標。
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 的方式,請參考(尚未編寫)。