使用LinqToExcel讀取Excel


我們讀取和寫入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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM