【问题标题】:Export multiple Excel sheets from Razor view从 Razor 视图导出多个 Excel 工作表
【发布时间】:2015-01-27 09:58:30
【问题描述】:

以下代码导出一些数据,将其下载到 XLS 文件中。

我想要的是给出所有三个列表并将每个数据列表导出到单独的工作表中。我该怎么做?

我的代码如下所示:

public bool ExportQuestionSet(int QuestionSetNo)
{
    ExportResponse response = new ExportResponse();
    QuestionSetTbl questionSetTbl = _questionSetDAO.GetQuestionSetByQuestionSetNo(QuestionSetNo);
    QuestionSetContract questionSetContract = GetQuestionSetByQuestionSetNo(QuestionSetNo);
    GridView gv = new GridView();
    gv.DataSource = questionSetContract.QuestionsInfoList;
    gv.DataBind();
    Response.ClearContent();
    Response.Buffer = true;
    Response.AddHeader("content-disposition", "attachment; filename=QuestionSet.xls");
    Response.ContentType = "application/ms-excel";
    Response.Charset = "";
    StringWriter sw = new StringWriter();
    System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
    gv.RenderControl(htw);
    Response.Output.Write(sw.ToString());
    Response.Flush();
    Response.End();
    return response.TaskComplete;
} 

【问题讨论】:

    标签: c# asp.net-mvc razor


    【解决方案1】:

    您不能输出 HTML 并将其称为 Excel。这适用于格式合理的表格,但它不是 Excel 文件,因此永远不会被识别。 可以读取文件,但不能导出多张工作表。

    使用库创建合适的 Excel 文件。

    【讨论】:

      【解决方案2】:

      我建议使用 OpenXml,因为它非常快并且可以创建正确的 Excel 文件。使用此线程中的示例:https://stackoverflow.com/a/11812551/1361993 您只需创建一个包含多个数据表的数据集,然后将其输出到文件中的相应工作表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-29
        • 1970-01-01
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        相关资源
        最近更新 更多