不使用NPOI、openxml SDK、LinqtoExcel..等元件讀取Excel(97-2016)檔案。
使用RiCoReader處理Excel轉DataTable。
以前我透過NPOI這強大元件,來處理讀取Excel(97-2013)檔案並轉換為DataTable,
而Excel2010之後的版本則是使用openXML SDK。
現在透過RiCoReader也可以進行讀取Excel(97-2016)檔案並轉換為DataTable。
使用WorkTableFactory 類別
GetDynamicTables()會返回 Dictionary<string, IEnumerable<dynamic>>型別,
我這裡示範將IEnumerable<dynamic>型別轉換為DataTable,當然你也可自行轉換為Entity。
private DataTable ToDataTable(string name,IEnumerable<dynamic> sourceitems)
{
var data = sourceitems.ToArray();
if (data.Count() == 0) return null;
var dt = new DataTable();
dt.TableName = name;
foreach (var key in ((IDictionary<string, object>)data[0]).Keys)
{
dt.Columns.Add(key);
}
foreach (var d in data)
{
dt.Rows.Add(((IDictionary<string, object>)d).Values.ToArray());
}
return dt;
}
讀取xls
原始檔案內容
讀取xlsx
原始檔案內容
切換工作表
原始工作表內容