使用Oledb将数据写入Excel
是否可以使用Oledb将数据写入一个通用的excel?
没有表结构或任何东西,这是一个用户文档。
当我尝试时,我总是一个OleDbException
- “INSERT”查询回复:操作必须使用可更新的应用程序。
- “UPDATE”查询答复:没有给出一个或多个必需参数的值。
我的代码:
using (OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\[...]\Classeur.xls" + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\"")) { connection.Open(); OleDbCommand commande = new OleDbCommand( "INSERT INTO [Feuil1$](F1,F2,F3) VALUES ('A3','B3','C3');", connection); commande.ExecuteNonQuery(); connection.Close(); connection.Dispose(); }
新的testing(没有成功!):
using (OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\Users\[...]\Classeur.xls" + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\"")) { string column = "A"; string row = "1"; string worksheetName = "Feuil1"; string data = "TEST"; connection.Open(); string commandString = String.Format("UPDATE [{0}${1}{2}:{1}{2}] SET F1='{3}'", worksheetName, column, row, data); OleDbCommand commande = new OleDbCommand( commandString, connection); connection.Close(); connection.Dispose(); }
我终于find了! IMEX简单的问题(这么多小时的损失!)
所以如果有人有同样的问题:
//for reading data Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\" //for writing data Extended Properties=\"Excel 8.0;HDR=NO;IMEX=3;READONLY=FALSE\"