繁体   English   中英

无法在C#中使用epplus从dataTable中导出Excel文件

[英]Cannot export excel file from dataTable by using epplus in C#

我已经找到了许多有关如何使用epplus将DataTable导出为Excel的示例和教程,但是我找不到直接的方法。 因此,我尝试了以下代码。

我的数据表:

===============================
d1    | d2    |  d3
===============================
aa1   | bb1   | cc1
aa2   | bb2   | cc2
aa3   | bb3   | cc3
aa4   | bb4   | cc4

脚本:

using OfficeOpenXml;
using OfficeOpenXml.Drawing;

//........
    protected viod exportToExcel (dataTable dt)
    {
        try
        {

            Response.Clear();
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("Logs.xlsx", System.Text.Encoding.UTF8));

            using (ExcelPackage pck = new ExcelPackage())
            {
               ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Logs");
                ws.Cells["A1"].LoadFromDataTable(dt, true);                 
                var ms = new System.IO.MemoryStream();
                pck.SaveAs(ms);
                ms.WriteTo(Response.OutputStream);                          
            }

        }
        catch (Exception ex)
        {
            Debug("error: " + ex.Message);//catch nothing
        }

    }

它返回服务器错误,没有捕获任何异常,因此我不知道会发生什么错误。

但是,当我删除

using (ExcelPackage pck = new ExcelPackage())

上面的代码部分。

有任何想法吗?

从服务器导出到excel的最佳方法是将数据表转换为HtmlTextWriter。 在Response.AddHeader(“ content-disposition”,“ attachment; filename = file.xls”);中;

Response.ContentType =“ application / vnd.ms-excel”; 最后

Response.Output.Write(htmltexwriter)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM