1. 程式人生 > 實用技巧 >替代OleDB,將excel檔案匯入datatable中

替代OleDB,將excel檔案匯入datatable中

問題描述:由於版權問題,要求不能安裝微軟的東西,或者使用office,
故需要將以前支援微軟OleDB(Access資料庫提供的工具)匯入datatable的方法改為wps的辦法
WPS目錄下 Program Files(x86)\Kingsoft\WPS Office\10.8.0.6058\Office6 下的etapi.dll檔案可以用作.net讀取excel表格的庫
其中:Excel是主類
Excel-->Workbook-->Item
Range是一個表格裡範圍的主類, Columns Rows Cells 的型別都是Range
具體api參考文件可以檢視:
https://docs.microsoft.com/zh-cn/office/vba/api/excel.range.count

以下程式碼作參考:

 try 
            { 
                Excel.Application appli = new Excel.Application(); 
                Excel._Workbook wk = appli.Workbooks.Open(excelPath); 
                System.Data.DataTable mydt = new System.Data.DataTable(); 

                if (wk != null) 
                { 

                    Excel.Worksheet sheet 
= wk.Worksheets.Item[1]; /** * added by jiangchaoqun, 如果沒辦法直接讀取,那麼就 */ mydt.Columns.Add("店鋪編號"); mydt.Columns.Add("URL"); if (sheet != null) {
int index = 0; foreach(Excel.Range rw in sheet.Rows) { //pay attention: we donnot need the first line!!! if (index == 0) { index++; continue; } if (null == rw.Cells[1,2].Value2 ) { break; } String value1 = rw.Cells[1, 2].Value2.ToString(); String value2 = rw.Cells[1, 3].Value2.ToString(); ; //建立行 DataRow row = mydt.NewRow(); //獲取每一行的值,儲存在datatable中 row["店鋪編號"] = value1; row["URL"] = value2; mydt.Rows.Add(row); } } }