c資料庫datatable
① 在C語言中,如何將EXCEL或者文檔中的數據讀入程序中
1 使用的命名空間為:using System.Data.OleDb;
2 連接資料庫的字元串為:
string myConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\
目錄.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"";
*.xsl可以認為是資料庫了,HDR表示是否隱藏excel的第一行(因為第一行一般表示欄位名稱)
IMEX 參數,因為不同的模式代表著不同的讀寫行為:當IMEX=0 時為「匯出模式」,這個模式開啟的 Excel 檔案只能用來做「寫入」用途。
當 IMEX=1 時為「匯入模式」,這個模式開啟的 Excel 檔案凳鏈只棗困孫能用來做「讀取」用途。當 IMEX=2 時為「連結模式」,這個模式開啟的 Excel 檔案可同時支援「讀取」與「寫入」用途。
3.OleDbConnection myConnection = new OleDbConnection(myConn);
4.string mysqlstr = "SELECT f1,f2,f5 FROM [Sheet1$]";
//[Sheet1$]就是表格了,選取第1,2,5列,用Fn表示第n列5 OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(mySQLstr, myConnection);6 DataSet myDS = new DataSet();7 myDataAdapter.Fill(myDS, "[Sheet1$]");
//原理都跟讀取sql是一樣
DataTable dt = myConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
//把相關信息記錄到datatable中
string tbname = dt.Rows[0][2].ToString().Trim();
//讀取表名信息【注尺譽意】由於excel每個單元格內數據默認的格式為:varchar(255),因此讀取超過255的單元格內容是需要修改注冊表,這里提供修改方法:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]"TypeGuessRows"="0"表示從前TypeGuessRows行判斷數據的類型。