XCode讀取Excel資料(適用於任何資料庫)

2021-09-22 06:58:26 字數 1416 閱讀 8531

雖然是充血模型,雖然是強型別,xcode同樣支援遍歷任何資料庫結構,並以強型別(相對於dataset等字典訪問)方式讀取資料。

要遍歷資料庫結構是很容易的事情,絕大多數orm都支援。

但是在沒有實體類的情況下以強型別方式讀取資料,就稍微有些複雜。xcode的原理是為每張表動態建立繼承自entity<>的實體類,然後通過介面來操作實體類。

**中有了快速反射,雖然沒有效能損耗,但是用起來挺彆扭的,這裡說明了xcode對於實體類元資料的動態訪問支援還不夠。

// 新增乙個連線

dal.addconnstr("test", "provider=microsoft.jet.oledb.4.0;" + "data source=test.xls;" + "extended properties=excel 8.0;", null, null);

dal dal = dal.create("test");

// 遍歷所有表

foreach (xtable table in dal.tables)

:", table.name);

// 建立乙個實體操作者,這裡會為資料表動態生成乙個實體類,並使用codedom編譯

ientityoperate op = dal.createoperate(table.name.replace("$", null));

// 因為動態生成**的缺陷,表名中的$已經被去掉,並且excel的查詢總必須給表名加上方括號,還是因為有$

// 下面通過快速反射設定meta.tablename

type type = op.gettype();

type = typeof(entity

<>.meta).makegenerictype(type);

propertyinfox.create(type, "tablename").setvalue("[" + table.name + "]");

// 如果沒有記錄,跳過

if (op.findcount() < 1) continue;

// 輸出表頭

foreach (fielditem item in op.fields)

\t", item.name);

}console.writeline();

// 查詢所有資料

entitylist

list = op.findall();

//dataset ds = list.todataset();

// 輸出資料

foreach (ientity entity in list)

\t", entity[item.name]);

}console.writeline();

}}

我不相信神話,我只相信汗水!我不相信命運,我只相信雙手!

分類:

x元件

讀取Excel資料

方法2 相當簡單,excel就像資料庫,每個sheet就是乙個table.microsoft.jet.oledb驅動.之後是datareader迴圈,或dataset處理都非常簡單.注意 資料型別的轉換 region set connection string strconn provider mi...

讀取Excel資料

excel2007的連線字串與excel2003的不同。datatable tbsheetname connection.getoledbschematable oledbschemaguid.tables,null 用來獲得sheet的名字 using system using system.io...

讀取excel資料

首先安裝npoi擴充套件包,開啟 管理nuget程式包 搜尋npoi。安裝 1 獲取前台fileupload控制項上傳的資料流 npoi.hssf.usermodel.hssfworkbook b new npoi.hssf.usermodel.hssfworkbook this.file1.pos...