2016-07-27 68 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