[RiCo Studio]使用RiCoReader讀取Excel檔案轉換為DataTable

不使用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

原始檔案內容

切換工作表

原始工作表內容