使用OleDbDataAdapter可以通过C#代码更新Excel数据。下面是一个示例代码:
using System;
using System.Data;
using System.Data.OleDb;
class Program
{
static void Main()
{
// 连接字符串,指定Excel文件路径和版本
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\excel.xlsx;Extended Properties='Excel 12.0;HDR=YES;';";
// 创建OleDbConnection对象
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 创建OleDbDataAdapter和DataSet对象
OleDbDataAdapter adapter = new OleDbDataAdapter();
DataSet dataSet = new DataSet();
// 设置更新命令
adapter.UpdateCommand = new OleDbCommand("UPDATE [Sheet1$] SET [Column1] = @value WHERE [ID] = @id", connection);
adapter.UpdateCommand.Parameters.Add("@value", OleDbType.VarChar, 255, "Column1");
adapter.UpdateCommand.Parameters.Add("@id", OleDbType.Integer, 4, "ID");
// 选择需要更新的数据
adapter.SelectCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
// 填充数据到DataSet
adapter.Fill(dataSet);
// 修改数据
DataTable dataTable = dataSet.Tables[0];
foreach (DataRow row in dataTable.Rows)
{
row["Column1"] = "New Value";
}
// 更新数据到Excel
adapter.Update(dataSet);
}
}
}
此代码示例连接到Excel文件,读取数据到DataSet,修改数据,然后使用OleDbDataAdapter更新Excel文件中的数据。请确保Excel文件路径和工作表名称正确。