首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在C#中使用epplus从dataTable中导出excel文件

问无法在C#中使用epplus从dataTable中导出excel文件
EN

Stack Overflow用户
提问于 2016-08-08 12:29:23
回答 1查看 1.1K关注 0票数 0

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

我的dataTable:

代码语言:javascript
复制
===============================
d1    | d2    |  d3
===============================
aa1   | bb1   | cc1
aa2   | bb2   | cc2
aa3   | bb3   | cc3
aa4   | bb4   | cc4

脚本:

代码语言:javascript
复制
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
        }

    }

它返回一个服务器错误,没有捕获任何异常,所以我不知道发生了什么错误。

但是,当我移除

代码语言:javascript
复制
using (ExcelPackage pck = new ExcelPackage())

部分的代码。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-08 14:01:43

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

Response.ContentType="application/vnd.ms-excel";和最后

Response.Output.Write(htmltexwriter)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38821322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档