C#将数据库数据导入指定Excel文件的表中
时间: 2024-12-11 10:38:46 浏览: 16
C#实现Excel表数据导入Sql Server数据库中的方法
在C#中,你可以使用ADO.NET或Entity Framework这样的ORM工具来处理数据库操作,然后结合EPPlus库来读写Excel文件。以下是基本步骤:
1. 首先,确保已经安装了`Microsoft.Office.Interop.Excel` NuGet包来提供对Excel的操作支持。
```csharp
using OfficeOpenXml;
```
2. 连接到数据库。这可以使用SqlConnection(对于SQL Server)或DbContext(如果使用EF Core)。
```csharp
using System.Data.SqlClient; // 或其他数据库连接组件
string connectionString = "your_database_connection_string";
var sqlConnection = new SqlConnection(connectionString);
```
3. 使用ADO.NET或Entity Framework查询数据库数据并填充一个DataTable或List<YourEntity>。
```csharp
// ADO.NET 示例
SqlCommand command = new SqlCommand("SELECT * FROM your_table", sqlCommand);
SqlDataReader reader = command.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(reader);
// Entity Framework 示例
using (var context = new YourDbContext())
{
var data = context.YourTable.ToList();
}
```
4. 使用EPPlus库将数据写入Excel。这里假设你已经有了一个ExcelWorksheet对象。
```csharp
var excelPackage = new ExcelPackage(new FileInfo("path_to_your_excel.xlsx"));
ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets["Sheet1"];
// 将DataTable写入Excel
foreach (DataRow row in dataTable.Rows)
{
for (int i = 0; i < dataTable.Columns.Count; i++)
{
worksheet.Cells[i + 1, dataTable.Columns[i]..Ordinal] = row[i];
}
}
excelPackage.Save();
```
5. 关闭数据库连接和Excel包装。
```csharp
sqlConnection.Close();
excelPackage.Dispose();
```
阅读全文