步骤:
-
查询数据库以获取数据:首先,你需要从数据库中查询数据并存储在合适的数据结构中,例如 DataTable。
-
创建一个新的 Excel 文件:使用一个库(如 EPPlus 或 NPOI)来创建和操作 Excel 文件。
-
映射列名:在导出数据时,使用你想要的中文标题替代数据库中的英文列名。
-
保存文件:将生成的 Excel 文件保存到指定位置。
示例代码:
以下是一个使用 EPPlus 库的示例代码,展示如何实现上述步骤:
- 安装 EPPlus
首先,通过 NuGet 安装 EPPlus 库:
Install-Package EPPlus
- 代码示例
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using OfficeOpenXml;
public class ExcelExporter
{
public void ExportToExcel(string connectionString, string query, string filePath)
{
// 1. 从数据库查询数据
DataTable dataTable = GetDataFromDatabase(connectionString, query);
// 2. 创建 Excel 文件
using (ExcelPackage excelPackage = new ExcelPackage())
{
ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");
// 3. 设置中文标题
string[] columnHeaders = { "中文标题1", "中文标题2", "中文标题3" }; // 根据你的需要自定义标题
for (int i = 0; i < columnHeaders.Length; i++)
{
worksheet.Cells[1, i + 1].Value = columnHeaders[i]; // 设置列名
}
// 4. 填充数据
for (int i = 0; i < dataTable.Rows.Count; i++)
{
for (int j = 0; j < dataTable.Columns.Count; j++)
{
worksheet.Cells[i + 2, j + 1].Value = dataTable.Rows[i][j]; // 从第二行开始填充数据
}
}
// 5. 保存文件
FileInfo fileInfo = new FileInfo(filePath);
excelPackage.SaveAs(fileInfo);
}
}
private DataTable GetDataFromDatabase(string connectionString, string query)
{
DataTable dataTable = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(query, connection))
{
connection.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
adapter.Fill(dataTable);
}
}
}
return dataTable;
}
}
说明:
-
查询数据库:GetDataFromDatabase 方法使用 SqlConnection 和 SqlDataAdapter 从数据库中获取数据并填充到 DataTable 中。
-
设置中文标题:在创建 Excel 文件时,使用 worksheet.Cells 设置中文标题。
-
填充数据:将 DataTable 中的数据填充到 Excel 的相应单元格中。
-
保存 Excel 文件:使用 excelPackage.SaveAs 方法保存生成的 Excel 文件。
注意事项:
确保已将 EPPlus 引入你的项目,并在代码顶部添加相应的 using 语句。
根据你的数据库结构和查询,调整列标题和数据填充逻辑。
如果需要处理更复杂的 Excel 文件(如样式、格式等),EPPlus 提供了丰富的 API 可供使用。