EPPlus 套件非常好用,為什麼要使用 ClosedXML 呢?最主要的原因就是因為 EPPlus 從 5 以上不能免費用於商業用途!(最新版本為 6),且一個開發者一年的授權費需要 379 美金!基本上是沒有辦法再使用了。
最近公司要處理 Excel,如果要使用微軟官方的 Open XML SDK ,寫起來太繁瑣,於是找到了這個開源免費的 ClosedXML ,並將常用內容記錄在本文中。
缺點: ClosedXML 不支援 Excel 2003 和以前的檔案 (.xls),只支援 Excel 2007 和以後的檔案 (.xlsx)
參考資料:
Github - ClosedXML/ClosedXML
Github - wiki
最近公司要處理 Excel,如果要使用微軟官方的 Open XML SDK ,寫起來太繁瑣,於是找到了這個開源免費的 ClosedXML ,並將常用內容記錄在本文中。
缺點: ClosedXML 不支援 Excel 2003 和以前的檔案 (.xls),只支援 Excel 2007 和以後的檔案 (.xlsx)
安裝
先使用 NuGet 安裝 ClosedXML 套件,或是使用 .NET CLI 執行以下指令安裝
dotnet add package ClosedXML
編輯 xlsx 示範
using ClosedXML.Excel;
using var workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add("活頁簿1"); // 增加活頁簿
worksheet.Cell("A1").Value = "Hello World!"; // 設定內容
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)"; // 使用公式
Console.WriteLine($"公式: {worksheet.Cell("A2").FormulaA1}"); // 取得公式本身
Console.WriteLine($"結果: {worksheet.Cell("A2").Value}"); // 取得公式結果
// 編輯多欄
var range = worksheet.Range("B1:D1");
range.Merge(); // 合併儲存格
range.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; // 置中對齊
range.Value = "標題"; // 設定內容
worksheet.Range("B2:D3").Value = "內容"; // 共 6 格都設定為 "內容"
worksheet.Row(3).InsertRowsAbove(1); // 在第三列上方插入一列
worksheet.Column(6).Delete(); // 刪除 F 欄
worksheet.Cell("B3").Value = "B3";
worksheet.Cell("B3").Style.Font.FontColor = XLColor.Red; // 設定文字顏色
worksheet.Cell("C3").Style.Fill.BackgroundColor = XLColor.Yellow; // 設定底色
// A1 到 F5 的下方繪製框線(共 5 條)
worksheet.Ranges("A1:F5").Style.Border.BottomBorder = XLBorderStyleValues.Thin;
worksheet.Cell("E1").Value = "E";
worksheet.Column(5).Hide(); // 隱藏 E 欄
worksheet.Column(5).Unhide(); // 取消隱藏
// 插入圖片
var image = worksheet.AddPicture(@"C:\Users\ruyut\Desktop\images\hi.gif")
.MoveTo(worksheet.Cell("A5"))
.Scale(0.5); // 縮小 50%
string fileName = @"C:\Users\ruyut\Desktop\test.xlsx";
workbook.SaveAs(fileName); // 儲存檔案
參考資料:
Github - ClosedXML/ClosedXML
Github - wiki
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com