使用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文件路徑和工作表名稱正確。