2016-07-27 103 views
0

如果我使用C#創建Excel電子表格/文件工作表,則此代碼僅處理數據。如果我提供它已經創建的Excel文件進​​行寫操作或操縱,它拋出一個異常:從C#寫入Excel工作表#

「Microsoft Access數據庫引擎找不到(在數據源提到在Excel文件的工作表)對象‘工作表Sheet1’ 確保對象存在,並且正確拼寫其名稱和路徑名稱。如果'Sheet1'不是本地對象,請檢查您的網絡連接或聯繫服務器管理員。

這是代碼我想:

string con = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\Temp\table1.xlsx;" + @"Extended Properties= 'Excel 12.0 Xml; HDR=YES;' 

OleDbConnection connection = new OleDbConnection(con); 
connection.Open(); 
OleDbCommand cmd = new OleDbCommand(); 
cmd.Connection = connection; 


cmd.CommandText = "CREATE TABLE [table1] (id INT, name VARCHAR, datecol DATE);"; 
cmd.ExecuteNonQuery(); 

cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(1,'AAAA','2014-01-01');"; 
cmd.ExecuteNonQuery(); 

cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(2, 'BBBB','2014-01-03');"; 
cmd.ExecuteNonQuery(); 

cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(3, 'CCCC','2014-01-03');"; 
cmd.ExecuteNonQuery(); 

cmd.CommandText = "UPDATE Book1 SET Name = 'Current Tag' WHERE id = 3;"; 
cmd.ExecuteNonQuery(); 

connection.Close(); 

任何幫助將誠摯感謝,謝謝

回答

1

是否有您必須使用Access數據庫命令來編輯您的Excel文件的原因嗎? 否則,你可以看看在

Microsoft.Office.Interop 

組件,它提供了直接訪問Excel文件: https://msdn.microsoft.com/en-us/library/ms173186(v=vs.80).aspx

+0

顯然,有很多方法可以實現一個目的,我這樣想吧。這樣excel文件就被當作數據庫來處理,而這些並不是專門爲ACCESS DB命令而使用的SQL SERVER。 –

+0

不幸的是,由於我沒有進入DB命令,所以我無法幫助您採用這種方法。不過,我希望你能弄明白,但! – Tarrokk