我想從C#中的Excel中訪問數據。理想情況下,我想將數據放入列表或一系列集合中。我正在使用本教程 - http://www.aspsnippets.com/Articles/Read-Excel-file-using-OLEDB-Data-Provider-in-C-Net.aspx。如何訪問C#中的Excel數據
這非常有幫助,但我認爲他錯過了數據適配器部分。這是我遵循他的例子得到的代碼。
string connectionString = null;
connectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = P:\\Visual Studio 2012\\Projects\\SmartSheetAPI\\SmartSheetAPI\\bin\\Debug\\OUTPUT.xls; Extended Properties = 'excel 12.0 Xml; HDR=YES; IMEX=1;';";
//Establish Connection
string dataSource = "P:\\Visual Studio 2012\\Projects\\SmartSheetAPI\\SmartSheetAPI\\bin\\Debug\\OUTPUT.xls;";
string excelConnection = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " + dataSource + " Extended Properties='Excel 8.0; HDR=Yes'";
OleDbConnection connExcel = new OleDbConnection(connectionString);
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;
//Accessing Sheets
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
connExcel.Close();
//access excel Sheets (tables in database)
DataSet dataset = new DataSet();
string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
da.SelectCommand = cmdExcel;
da.Fill(dataset);
connExcel.Close();
如果你看下面三行,你會注意到他使用da.SelectCommand和da.Fill來填充數據集。但我認爲這需要一個數據適配器,而他沒有這個例子。我曾嘗試創建如下一個DataAdapter:
SqlDataAdapter dataadapter = new SqlDataAdapter();
,但我得到一個錯誤,說明:可以鍵入「System.Data.OleDb.OleDbCommand」不能隱式轉換爲System.Data.SqlClient.SqlCommand」。
我知道它一直工作到選擇語句。有人可以幫助我我基本上只是想能夠訪問我在選擇聲明中獲得的信息。
是啊,這是有道理給出的錯誤 – Danrex 2014-12-08 08:13:56