c# - Excel文件导出没有任何错误
问题描述
我试图从我的数据访问层导出我的数据,但什么也没发生,没有错误,也没有导出。很难知道出了什么问题,因为没有错误
我试过这个:
if (dt.Rows.Count > 0){
dgv.DataSource = dt;
dgv.DataBind();
Response.ClearContent();
Response.AppendHeader("content-disposition","attachement;filename=transaction.xls");
Response.ContentType = "application/excel";
StringWriter stringWritter = new StringWriter();
HtmlTextWriter htmlTextWritter = new HtmlTextWriter(stringWritter);
dgv.RenderControl(htmlTextWritter);
Response.Write(stringWritter.ToString());
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();
但什么也没发生。
我已经尝试过了,但也没有:
StringWriter osStringWritter = new StringWriter();
Html32TextWriter osHtmlTextWritter = new Html32TextWriter(osStringWritter);
DataTable dt = new DataTable();
DataGrid dgv = new DataGrid();
Response.Clear();
Response.Buffer = false;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xls", "TransactionReport"));
Response.Charset = "";
dgv.DataSource = dt;
dgv.DataBind();
dgv.RenderControl(osHtmlTextWritter);
Response.Write("Report Datw:" + DateTime.Now);
Response.Write(osStringWritter.ToString());
//Response.End();
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();
dgv = null;
osStringWritter = null;
osHtmlTextWritter = null;
我做错了什么?
解决方案
试试这个可能会解决您的问题
dgv.DataSource = dt;
dgv.DataBind();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename = Export to Excel.xls");
Response.ContentType = "application/ms-excel";
Response.Charset = "";
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
dgv.RenderControl(htw);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
推荐阅读
- c# - 作为 ScriptableObject 的鼠标管理器是否可行?
- c# - 如何在 Microsoft Bot 框架服务器端打开 Internet 选项卡?
- javascript - 如何比较 node.js 中的两个数组
- php - PHP中有海象运算符吗?
- vba - 在当前表单上创建控件
- python - Conda 自定义包安装到错误的 python 版本目录中
- sql - Oracle SQL SYSDATE、CURRENT_TIMESTAMP、LOCAL_TIMESTAMP 都返回 null
- python - Tkinter 画布拖离中心
- angular - Angular - 如何从 Observable 中获取值
- c++ - 调试断言失败:向量下标超出范围