1

vs'12 asp.net C# MVC, 互联网应用模板, Kendo UI, EF Code First

我正在尝试做的是dataModels一起使用我的所有内容并构建一个Excel格式良好的文件和所有这些好东西 - 将某些数据放入某些字段。这些文件将相当复杂, - 在 Excel 中添加和选中复选框,在其他格式的字段周围创建框

现在据我所知,将数据从 HTML 导出到 excel 中,但这不是我想要的,我能想到的唯一其他方法是从 a到 a运行C#代码,然后使其可下载/和/或导出?controllerclass

这是“最佳实践”吗?如果不是,那是什么?

4

1 回答 1

2

您需要使用 EPPlus 之类的库将 Excel 创建为 abyte[]或 a 。Stream然后,您可以使用 FileActionResult 提供此服务:

public ActionResult CreateExcel()
{
    var data=_repository.GetExcelData();
    byte[] excel=CreateExcelAsByteArray(data);
    return File(excel, "application/vnd.ms-excel", "excel.xlsx");
}

使用此方法,您可以提供动态创建的 Excel 文件。

更新:要创建 excel 文件,您可以使用 EPPlus:

public byte[] CreateExcelAsByteArray(IEnumerable<int> elems)
{
    using(var ms=new MemoryStream())
    using(var package=new ExcelPackage())
    {
        var ws = package.Workbook.Worksheets.Add("worksheet");
        int i=1;
        foreach(var elem in elems)
        {
            ws.Cells("A"+i).Value=elem;
            i++;
        }
        package.SaveAs(ms);
        return ms.ToArray();
    }
}
于 2013-09-10T16:26:06.660 回答