2013-07-11 29 views
0

我創建一個使用OleDB的Excel文件,它完美的工作,接下來,我直接在Office Excel中添加行到文件,之後,當我嘗試再次使用OleDB讀取文件時,行我手動添加不會出現,只有我創建文件時寫的列和行。缺失的行讀取生成的Excel文件

下面是代碼:

//Creation of the file 
     String connectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + path + "; Mode=ReadWrite; Extended Properties= 'Excel 8.0; HDR=Yes; IMEX=0'"; 
     OleDbConnection oledbconnection; 

     oledbconnection = new OleDbConnection(connectionString); 
     oledbconnection.Open(); 

     String query = "CREATE TABLE [Sheet1] (....) "; 

     OleDbCommand cmd = new OleDbCommand(query, oledbconnection); 
     cmd.ExecuteNonQuery(); 

     oledbconnection.Close(); 

它完美的作品,該文件是正確創建的,那麼,當試圖讀取IM文件後修改它,我在做這個

 String connectionStringRead = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + path + "; Extended Properties= 'Excel 8.0; HDR=Yes; IMEX=1'"; 

     OleDbConnection oledbconnection; 
     oledbconnection = new OleDbConnection(connectionStringRead); 
     oledbconnection.Open(); 

     DataTable table = new DataTable(); 
     String sheetName; 

     sheetName = oledbconnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["TABLE_NAME"].ToString(); 

     OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "]", oledbconnection); 
     adapter.Fill(table); 

     oledbconnection.Close(); 
     return table; 

該表僅包含原始信息,而不包含使用MS Excel添加的行。

我不明白這一點,你能幫助我嗎?

在此先感謝

回答

1

切勿像前,但如果

sheetName = "Sheet1" '-------> or whatever 

應該

OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "$]", oledbconnection); 
+0

非常感謝,它的工作原理! – JuanS