在asp.net(aspx)中如何导出Excel文件?
|
admin
2025年1月1日 17:42
本文热度 147
|
在 ASP.NET(aspx)中可以使用以下方法导出 Excel 文件:
一、使用 EPPlus 库
3. 首先,确保在项目中引用 EPPlus 库。可以通过 NuGet 包管理器进行安装。
4. 以下是一个示例代码:
using OfficeOpenXml;
protected void ExportToExcel_Click(object sender, EventArgs e)
{
using (ExcelPackage package = new ExcelPackage())
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 设置表头
worksheet.Cells[1, 1].Value = "Column1";
worksheet.Cells[1, 2].Value = "Column2";
worksheet.Cells[1, 3].Value = "Column3";
// 设置数据
worksheet.Cells[2, 1].Value = "Value11";
worksheet.Cells[2, 2].Value = "Value12";
worksheet.Cells[2, 3].Value = "Value13";
worksheet.Cells[3, 1].Value = "Value21";
worksheet.Cells[3, 2].Value = "Value22";
worksheet.Cells[3, 3].Value = "Value23";
// 设置响应类型为 Excel 文件
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=export.xlsx");
// 将 Excel 内容写入响应流
Response.BinaryWrite(package.GetAsByteArray());
Response.End();
}
}
二、使用 NPOI 库
1. 通过 NuGet 安装 NPOI 库。
2. 示例代码如下:
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
protected void ExportToExcel_Click(object sender, EventArgs e)
{
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
// 设置表头
IRow headerRow = sheet.CreateRow(0);
headerRow.CreateCell(0).SetCellValue("Column1");
headerRow.CreateCell(1).SetCellValue("Column2");
headerRow.CreateCell(2).SetCellValue("Column3");
// 设置数据
IRow dataRow1 = sheet.CreateRow(1);
dataRow1.CreateCell(0).SetCellValue("Value11");
dataRow1.CreateCell(1).SetCellValue("Value12");
dataRow1.CreateCell(2).SetCellValue("Value13");
IRow dataRow2 = sheet.CreateRow(2);
dataRow2.CreateCell(0).SetCellValue("Value21");
dataRow2.CreateCell(1).SetCellValue("Value22");
dataRow2.CreateCell(2).SetCellValue("Value23");
// 设置响应类型为 Excel 文件
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=export.xlsx");
// 将 Excel 内容写入响应流
using (MemoryStream ms = new MemoryStream())
{
workbook.Write(ms);
Response.BinaryWrite(ms.ToArray());
}
Response.End();
}
该文章在 2025/1/1 17:42:37 编辑过