2017-03-19

[ASP.NET] Excel 匯入匯出工具 - ClosedXML

以前都是用 Office 元件在做 Excel 的匯入匯出功能,Server 就要安裝 Office 才能正常執行,而且是要安裝程式裡用到的版本才行,頗為麻煩,因此開始尋找替代方案。

幸運的看到黑暗大的一篇文章,針對第三方 Excel 元件的比較,最後決定使用 ClosedXML 元件,試用下也非常喜歡,在此簡單記錄下個人常用的匯入匯出功能,詳細介紹請再自行查閱了。

匯入 Excel:
// Excel 來源
XLWorkbook workbook = new XLWorkbook("D:\\temp\\Tim.xlsx");

// 讀取第一個 Sheet
IXLWorksheet worksheet = workbook.Worksheet(1);

// 定義資料起始、結束 Cell
var firstCell = worksheet.FirstCellUsed();
var lastCell = worksheet.LastCellUsed();

// 使用資料起始、結束 Cell,來定義出一個資料範圍
var data = worksheet.Range(firstCell.Address, lastCell.Address);

// 將資料範圍轉型
var table = data.AsTable();
int I = 0;

// 開始抓出資料
list.Clear();
foreach (var row in table.Rows())
{
    // 跳過標題列
    if (I == 0)
    {
        I++;
        continue;
    }

    // 取值
    row.Cell("1").Value.ToString();
    row.Cell("2").Value.ToString();
    row.Cell("3").Value.ToString();
}

匯出 Excel:
var workbook = new XLWorkbook();

// 要匯出 Excel 的 DataTable
var dataTable = GetTable("NorthWinds");

workbook.Worksheets.Add(dataTable);
workbook.SaveAs("Tim.xlsx");

沒有留言:

張貼留言