C#+NPOI导出
1.首先下载DotNetCore.NPOI包,版本根据自己的项目进行对应 
2.在控制器上复制使用就可以了,修改获取数据的表(这个是获取表里所有列对应行的数据)
public IActionResult ExportExcel()
{
string sql = "select * from ";
// 获取数据
DataTable dt = SQLHelper.GetTable(sql);
// 创建Excel工作簿
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("导出数据");
// 创建标题行
IRow headerRow = sheet.CreateRow(0);
for (int i = 0; i < dt.Columns.Count; i++)
{
headerRow.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
}
// 填充数据
for (int i = 0; i < dt.Rows.Count; i++)
{
IRow row = sheet.CreateRow(i + 1);
for (int j = 0; j < dt.Columns.Count; j++)
{
object value = dt.Rows[i][j];
row.CreateCell(j).SetCellValue(value?.ToString() ?? "");
}
}
// 返回文件
using (var stream = new MemoryStream())
{
workbook.Write(stream);
return File(stream.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
$"导出数据_{DateTime.Now:yyyyMMdd}.xlsx");
}
}
3.在控制器上复制使用就可以了,修改获取数据的表(这个是获取表里指定列对应行的数据)
public IActionResult ExportSelectedColumns()
{
string sql = "select * from ";
// 1. 获取完整数据
DataTable fullData = SQLHelper.GetTable(sql);
// 2. 指定要导出的列(根据您的需求调整)
string[] selectedColumns = { "1", "2", "3", "4" ,"5"};
// 3. 创建Excel工作簿
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("导出数据");
// 4. 创建标题行(只包含选定列)
IRow headerRow = sheet.CreateRow(0);
for (int i = 0; i < selectedColumns.Length; i++)
{
headerRow.CreateCell(i).SetCellValue(selectedColumns[i]);
}
// 5. 填充数据(只导出选定列)
for (int rowIdx = 0; rowIdx < fullData.Rows.Count; rowIdx++)
{
IRow row = sheet.CreateRow(rowIdx + 1);
int cellIdx = 0;
foreach (string colName in selectedColumns)
{
object value = fullData.Rows[rowIdx][colName];
row.CreateCell(cellIdx++).SetCellValue(value?.ToString() ?? "");
}
}
// 6. 返回文件
using (var stream = new MemoryStream())
{
workbook.Write(stream);
return File(stream.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
$"导出数据_{DateTime.Now:yyyyMMdd}.xlsx");
}
}

浙公网安备 33010602011771号