针对 “Asp.Net数据输出到Excel表格中” 的问题,可以提供以下步骤:
1. 添加NuGet包
在Visual Studio中打开你的Asp.Net项目,右击项目文件夹,选择“管理NuGet包”选项。在nuget.org上搜索并添加以下两个包:
- EPPlus: 用于操作Excel文件的库。
- Microsoft.AspNet.WebApi.Core: 如果你使用Web API和Excel可以共存。
这里以项目引用EPPlus为例,以下示例都基于这个库。
2. 导出Excel
注意:由于EPPlus不是开源软件,需要在生产环境中获得相应的许可证(可以通过购买商业许可证来获得)。
下面提供基于EPPlus实现“将数据输出到Excel表格中”的两种方法。
方法1:将数据输出到文件中
using OfficeOpenXml;
using System.IO;
// ...
public void ExportToExcel()
{
using (ExcelPackage package = new ExcelPackage())
{
// 创建工作簿
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 添加表头
worksheet.Cells[1, 1].Value = "ID";
worksheet.Cells[1, 2].Value = "Name";
worksheet.Cells[1, 3].Value = "Age";
// 模拟数据
List<Person> list = new List<Person>()
{
new Person() { Id = 1, Name = "张三", Age = 18 },
new Person() { Id = 2, Name = "李四", Age = 20 }
};
// 添加数据
int rowIndex = 2;
foreach (Person item in list)
{
worksheet.Cells[rowIndex, 1].Value = item.Id;
worksheet.Cells[rowIndex, 2].Value = item.Name;
worksheet.Cells[rowIndex, 3].Value = item.Age;
rowIndex++;
}
// 保存Excel文件
string fileName = "test.xlsx";
string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName);
FileInfo file = new FileInfo(filePath);
package.SaveAs(file);
}
}
该方法中,我们首先创建一个ExcelPackage实例,然后创建一个工作簿,再将数据填充到工作簿中,最后将ExcelPackage实例保存到文件中。
方法2:将数据输出到内存流中
using OfficeOpenXml;
using System.IO;
using System.Web;
using System.Web.Mvc;
// ...
public JsonResult ExportToExcel()
{
using (ExcelPackage package = new ExcelPackage())
{
// 创建工作簿
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 添加表头
worksheet.Cells[1, 1].Value = "ID";
worksheet.Cells[1, 2].Value = "Name";
worksheet.Cells[1, 3].Value = "Age";
// 模拟数据
List<Person> list = new List<Person>()
{
new Person() { Id = 1, Name = "张三", Age = 18 },
new Person() { Id = 2, Name = "李四", Age = 20 }
};
// 添加数据
int rowIndex = 2;
foreach (Person item in list)
{
worksheet.Cells[rowIndex, 1].Value = item.Id;
worksheet.Cells[rowIndex, 2].Value = item.Name;
worksheet.Cells[rowIndex, 3].Value = item.Age;
rowIndex++;
}
// 将Excel数据输出到内存流
MemoryStream stream = new MemoryStream();
package.SaveAs(stream);
stream.Seek(0, SeekOrigin.Begin);
// 将内存流输出到客户端
string fileName = "test.xlsx";
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName);
}
}
该方法中,我们同样是创建一个ExcelPackage实例,然后创建一个工作簿,将数据填充到工作簿中。接着,我们将Excel数据输出到一个内存流(MemoryStream)中,并将内存流输出到客户端。注意:为了让Excel文件作为下载返回,这里返回的是JsonResult。
此外,当然你也可以将Excel数据生成二进制数据后通过网络上传到远程主机等其他方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Asp.Net数据输出到EXCEL表格中 - Python技术站