使用microsoft.jet.oledb讀取excel檔案時需要在sql中指定表名,形如[sheet1$],也就是xls檔案中的工作表。對於匯入excel檔案這類操作,因為使用者提供的xls檔案中工作簿的名字不一定是預設的「sheet1」,檢測excel檔案的工作表的名稱往往需要呼叫excel的com物件來獲得,比較麻煩。
另外有個辦法可以獲得工作表名稱,以下是c#**:
public static string getfirsttablename()
但是上面的方法獲取的表名,其實是經過排序的,不一定就是位置在第乙個的工作表的名稱,所以並不一定適用。
其實可以用下面的辦法繞過這個必須顯式指定工作表的問題,在oledb呼叫的獲取資料的sql這樣指定表名:
select * from [$a1:r65536]
此處[$a1:r65536] 替換通常的[sheet1$],其含義就是獲取xls檔案中在第乙個位置的工作表中a列到r列的1-65536行這塊資料。這樣就可以避免獲取第乙個工作表的問題,根據要匯入的xls檔案內容可以修改 開始列字母1:結束列字母65536 中的字母為實際需要的值。
[**
使用OleDb,將Excel匯入DataSet
本方法,將傳入的excel檔案內所有的sheet內的資料都填充入dataset中。這是乙個簡單快捷的方法,不足之處是不適合帶有格式複雜的excel檔案。比如 有合併單元格的 public class excelutil extended properties excel 8.0 if firstro...
使用OleDb,將Excel匯入DataSet
本方法,將傳入的excel檔案內所有的sheet內的資料都填充入dataset中。這是乙個簡單快捷的方法,不足之處是不適合帶有格式複雜的excel檔案。using system.data using system.data.oledb using system.data.odbc public da...
Oledb的方式匯出Excel
連線字串 string connectionstring provider microsoft.jet.oledb.4.0 data source excel檔案路徑及檔案全名 extended properties excel 8.0 hdr yes imex 2 定義連線物件 oledbconn...