在C#中使用epplus无法从dataTable导出excel文件
本文关键字:dataTable 导出 excel 文件 epplus | 更新日期: 2023-09-27 18:01:11
我找到了很多关于如何使用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("内容处置","附件;filename=file.xls"(;
Response.ContentType="application/vnd.ms-excel";最后是
响应.输出.写入(htmltexwriter(