您可以使用 OleDbDataAdapter
和 OleDbCommandBuilder
类来更新 Excel 文件。
以下是使用 OleDbDataAdapter
更新 Excel 文件的示例代码:
using System; using System.Data; using System.Data.OleDb; class Program { static void Main() { string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=your_excel_file.xlsx;Extended Properties='Excel 12.0'"; string tableName = "Sheet1"; // Excel 表格名称 using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); // 选择需要更新的数据 string selectQuery = $"SELECT * FROM [{tableName}$]"; OleDbDataAdapter dataAdapter = new OleDbDataAdapter(selectQuery, connection); // 创建并填充数据集 DataSet dataSet = new DataSet(); dataAdapter.Fill(dataSet, tableName); // 更新数据集中的数据 DataTable dataTable = dataSet.Tables[tableName]; DataRow newRow = dataTable.NewRow(); newRow["Column1"] = "New value 1"; newRow["Column2"] = "New value 2"; dataTable.Rows.Add(newRow); // 创建命令生成器并更新 Excel 文件 OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter); dataAdapter.Update(dataSet, tableName); connection.Close(); } } }
在上述示例代码中,您需要将 your_excel_file.xlsx
替换为您的 Excel 文件路径,将 Sheet1
替换为您需要更新的 Excel 表格名称。您还可以根据需要更改和添加要更新的数据列和值。
这段代码首先建立了一个 OleDbConnection
对象,并使用给定的连接字符串打开连接。接下来,我们使用 OleDbDataAdapter
执行一个查询来选择需要更新的数据。然后,我们创建一个 DataSet
对象,并使用 Fill
方法填充数据。接着,我们通过在 DataTable
中创建一个新的行并设置其值来更新数据集中的数据。最后,我们创建一个 OleDbCommandBuilder
对象来生成更新命令,并使用 Update
方法将更改保存到 Excel 文件中。
请注意,您需要将 Microsoft.ACE.OLEDB.12.0
提供程序添加到您的项目引用中。