文章出處

我們讀取和寫入Excel 經常使用NPOI工具,如果我們的需求只是需要讀取Excel,可以考慮使用LinqToExcel這個組件。這個組件用起來簡單,實用,操作方便,而且結合了Linq的查詢特性,excel版本不僅支持2003,而且連wps表格都支持(后綴名為.et),csv文件更不在話下了。項目地址:https://code.google.com/p/linqtoexcel/

在使用之前:

1.添加引用,通過Nuget 來添加是最方便的了,這里要注意的32/64問題,具體參看文章 如何解決 LinqToExcel 發生「無法載入檔案或組件」問題

LinqToExcel.dll

Remotion.Data.Linq.dll

2.添加命名空間

using LinqToExcel;

//取得數據,只需要一行代碼

var execelfile = new ExcelQueryFactory(sample.xls);

  如何取到相應的表呢?

//緊接樓上
var tsheet = excelfile.Worksheet(0);

  此時得到是沒有進行相應映射的(row)行列集合.

一個簡單的查詢:

var excelfile = new ExcelQueryFactory("1.xls");

var tsheet = excelfile.Worksheet(0);<br> //查詢30歲以上的人的名字

var query = from p in tsheet

where p["Age"].Cast<int>() > 30

select p;

foreach (var item in query)

{

Console.WriteLine("Name is {0}",item[0].Value.ToString());

}

Console.Read();

那如何轉成相應的實體集合呢? LinqToExcel還具有Mapping 功能,如果類的屬性名和Excel里的表頭名字如果是英文,(區分大小寫)必須與屬性名保持一致,支持中文屬性名和表頭。接著就是一個常遇到的需求,雖然說 Excel 的字段定義是英文,但是讀出來的時候必須要是更有意義的字詞(本范例翻譯成中文....),這時候就可以利用 LinqToExcel 的 AddMapping 功能來達到。

google code:https://code.google.com/p/linqtoexcel/

github:https://github.com/paulyoder/LinqToExcel

nuget: https://www.nuget.org/packages/LinqToExcel/https://www.nuget.org/packages/LinqToExcel_x64/

以程式方式讀取Excel的另一項選擇-Linq to Excel


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()