推薦一個開源計畫,使得我們可以使用LINQ語法來查詢、修改Excel檔
中的數據,極大地簡化了Excel數據的處理過程。
01
計畫簡介
LinqToExcel 是一個 .NET 庫,它允許開發者使用 LINQ語法來查詢 Excel 電子試算表和 CSV 檔中的數據,開發者可以像操作資料庫一樣方便地處理Excel檔。
不過要註意的是需要安裝 Microsoft Access Database Engine 2010 Redistributable,這裏需要Excel檔所需的數據引擎。
02
計畫核心功能
1、LINQ 語法支持:允許使用 LINQ 語法查詢 Excel 電子試算表和 CSV 檔中的數據。
2、查詢:可透過預設工作表 "Sheet1" 或透過名稱指定的工作表,查詢數據。
3、內容 對映 到列:支持將 Excel 列名對映到 .NET 類的內容,包括使用 AddMapping() 方法或 ExcelColumn 內容。
4、動態型別查詢:透過 LinqToExcel.Row 類,可以在不預先定義類的情況下查詢工作表,並透過字串索引存取單元格值。
5、支持查詢沒有列標題的工作表,透過索引獲取單元格值。
6、支持命名範圍查詢:可以針對工作表中的命名範圍進行查詢。
7、特定單元格範圍查詢:允許查詢工作表中定義的特定單元格範圍。
8、CSV 檔查詢:CSV檔支持與Excel相同的查詢操作。
9、後設資料檢索:能夠檢索工作表名稱和列名,方便獲取電子試算表結構。
10、對映嚴格性設定:透過 StrictMapping 內容,可以設定對映的嚴格性,確保數據對映的正確性。
11、未對映列值保留:在適當的對映嚴格性設定下,可以透過實作 IContainsUnmappedCells 介面保留未對映的列值。
12、資料庫引擎選擇:允許手動設定使用 Jet 或 Ace 資料庫引擎,以適應不同的 Excel 檔格式。
13、空白處理:提供去除單元格值前後空白的功能。
14、持久連線:支持持久連線,允許在整個應用程式中重用同一個資料庫連線。
15、支持唯讀模式:支持以唯讀模式開啟 Excel 檔,避免對檔的意外修改。
16、延遲載入:支持延遲載入數據,即按需逐行讀取數據,而不是一次性載入到記憶體中。
03
使用方法
1、安裝依賴
Install-Package LinqToExcel
Install-Package System.Data.OleDb
2、使用範例
using LinqToExcel;
//開啟檔
var excel = new ExcelQueryFactory("1.xlsx");
//LINQ查詢
var indianaCompanies = from c in excel.Worksheet<Company>()
where c.State == "IN"
select c;
//遍歷輸出
foreach(var company in indianaCompanies)
{
Console.WriteLine(company.ID);
}
//對映的實體
classCompany
{
publicint ID { get; set; }
publicstring State { get; set; }
}
04
計畫地址
https://github.com/paulyoder/LinqToExcel
- End -
分享一套.NetCore從入門到精通視訊教程
點選下方公眾號卡片,關註我
回復「 888 」,免費領取
推薦閱讀
覺得好看 點個在看👇