使用OleDb在C#中将数据插入Excel 2007

The*_*ion 5 c# oledb excel

我用它作为我想做这个网站的基础: http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=8500

基本上,我想在我的C#Windows表单应用程序中使用OleDb将一些数据添加到现有Excel电子表格中的特定单元格中.我发现的所有示例都希望我有一些类型的标题单元格.就像我的'A1'单元格中有"标题"一样,我可以使用:

"INSERT INTO [SHEET1$] (Title) Values ('Book')"  
Run Code Online (Sandbox Code Playgroud)

问题是我的Excel电子表格没有任何标题.我需要做的是:

"INSERT INTO [SHEET1$] (A15) Values ('Book')".
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄清楚如何将数据放在我的电子表格的特定单元格中吗?

小智 6

如果你还有兴趣,

没有真正的方法来指定要使用OleDb Insert Command写入的单元格,OleDbCommand将自动转到指定列中的下一个打开行.但是,您可以使用更新查询,例如:

sql = "Update [Sheet1$A1:A15] SET A15 = 'DesiredNumber'"; 
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

这应该适用于您定义的:

System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Example.xls';Extended Properties=Excel 8.0;");
MyConnection.Open();
myCommand.Connection = MyConnection;
Run Code Online (Sandbox Code Playgroud)