首页 > 后端开发 > C++ > 如何使用 EPPlus 将数据从 ASP.NET MVC 应用程序高效导出到 Excel?

如何使用 EPPlus 将数据从 ASP.NET MVC 应用程序高效导出到 Excel?

Linda Hamilton
发布: 2025-01-05 15:24:39
原创
604 人浏览过

How to Efficiently Export Data to Excel from an ASP.NET MVC Application Using EPPlus?

如何将数据导出到 Excel

概述

本问题重点介绍从 ASP.NET MVC 应用程序将数据导出到 Excel。虽然提供的指南建议了 HTML 到 Excel 的转换方法,但本文探讨了如何使用 EPPlus(一个 Excel 包库)来创建正确的 Excel 文件。

使用 EPPlus 创建 Excel

EPPlus 提供LoadFromDataTable 和 LoadFromCollection 等方法可使用数据填充 Excel 区域。以下是创建 Excel 文件的示例:

using (ExcelPackage package = new ExcelPackage())
{
    var ws = package.Workbook.Worksheets.Add("My Sheet");
    ws.Cells["A1"].LoadFromDataTable(dataTable, true);

    var stream = new MemoryStream();
    package.SaveAs(stream);

    string fileName = "myfilename.xlsx";
    string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

    stream.Position = 0;
    return File(stream, contentType, fileName);
}
登录后复制

格式和样式

EPPlus 允许对导出的数据进行格式化和应用表格样式。例如:

var range = ws.Cells["A1"].LoadFromDataTable(table);
range.Style.Numberformat.Format = "#,##0.00";
range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;

ws.Cells[1,1].LoadFromDataTable(table, true, TableStyles.Light1);
登录后复制

EPPlus 的自定义文件结果

为了避免流处理问题,可以创建自定义 FileResult 类来管理 EPPlus 包响应:

public class EpplusResult : FileResult
{
    public EpplusResult(ExcelPackage package)
        : base("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
    {
        if (package == null)
        {
            throw new ArgumentNullException("package");
        }

        Package = package;
    }

    public ExcelPackage Package { get; private set; }

    protected override void WriteFile(HttpResponseBase response)
    {
        Stream outputStream = response.OutputStream;
        using (Package)
        {
            Package.SaveAs(outputStream);
        }
    }
}
登录后复制

Action Controller 中的实现

public FileResult ExportData()
{
    ExcelPackage package = new ExcelPackage();
    var ws = package.Workbook.Worksheets.Add("My Sheet");
    ...
    ws.Cells[1, 1].LoadFromDataTable(table, true, TableStyles.Light1);

    return new EpplusResult(package) { FileDownloadName = "SomeFile.xlsx" };
}
登录后复制

以上是如何使用 EPPlus 将数据从 ASP.NET MVC 应用程序高效导出到 Excel?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板