C#如何读写excel文件
时间: 2023-08-19 08:05:45 浏览: 123
使用C#读取excel文件
在 C# 中读写 Excel 文件可以使用 Microsoft Office 应用程序或开源库。以下是使用 Microsoft Office 应用程序的示例代码:
```csharp
using System;
using System.Data;
using System.Data.OleDb;
class ExcelReadWrite {
static void Main() {
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=example.xlsx;Extended Properties='Excel 12.0;HDR=YES;'";
// 读取数据
using (OleDbConnection connection = new OleDbConnection(connectionString)) {
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
foreach (DataRow row in dataTable.Rows) {
Console.WriteLine(row["Column1"].ToString() + "\t" + row["Column2"].ToString());
}
}
// 写入数据
using (OleDbConnection connection = new OleDbConnection(connectionString)) {
connection.Open();
OleDbCommand command = new OleDbCommand("INSERT INTO [Sheet1$] ([Column1], [Column2]) VALUES (@Column1, @Column2)", connection);
command.Parameters.AddWithValue("@Column1", "Value1");
command.Parameters.AddWithValue("@Column2", "Value2");
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine(rowsAffected.ToString() + " rows inserted.");
}
}
}
```
以上代码使用 `OleDbConnection` 和 `OleDbCommand` 类连接到 Excel 文件,并读取或写入数据。需要注意的是,这种方法需要安装 Microsoft Office 应用程序才能工作,且需要保证 Excel 文件的格式正确。
开源库方面,可以使用 `EPPlus` 或 `NPOI` 库来读写 Excel 文件。以下是使用 `EPPlus` 库的示例代码:
```csharp
using System;
using OfficeOpenXml;
class ExcelReadWrite {
static void Main() {
string filePath = @"example.xlsx";
// 读取数据
using (ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(filePath))) {
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
for (int row = 1; row <= worksheet.Dimension.Rows; row++) {
Console.WriteLine(worksheet.Cells[row, 1].Value.ToString() + "\t" + worksheet.Cells[row, 2].Value.ToString());
}
}
// 写入数据
using (ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(filePath))) {
ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
worksheet.Cells[worksheet.Dimension.Rows + 1, 1].Value = "Value1";
worksheet.Cells[worksheet.Dimension.Rows + 1, 2].Value = "Value2";
package.Save();
}
}
}
```
以上代码使用 `ExcelPackage` 类连接到 Excel 文件,并读取或写入数据。需要注意的是,这种方法需要安装 `EPPlus` 库才能工作。
综上所述,读写 Excel 文件有多种方法,可以根据具体情况选择合适的方法。
阅读全文