关于.NET导出表格到EXCEL的方法

knightwayne 2011-11-24 01:36:58
表格大概在500~1000行,大家有什么好的方法,可以让速度快一些?
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcl007_ 2011-11-24
  • 打赏
  • 举报
回复
csv文本写入格式,超快
a726928296 2011-11-24
  • 打赏
  • 举报
回复
在导出之前先对gridview的数据进行绑定。

GridView1.Columns[9].Visible = false; //隐藏不想看到的列

string style = @"<style> .text { mso-number-format:\@; } </script> ";
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
//Response.Charset = "gb2312";
HttpContext.Current.Response.Charset = "Unicode";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
//Response.ContentType = "appllication/vnd.ms-execl";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(htmlWrite);
Response.Write(style);
Response.Write(stringWrite.ToString());
Response.End();
GridView1.AllowPaging = true;
GridView1.DataBind();


public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}//重写方法

前台page指令中加入EnableEventValidation="false"

knightwayne 2011-11-24
  • 打赏
  • 举报
回复
我已经生成一个DATATABLE,要求一个方法输出EXCEL,要求代码尽量简短,而且速度要快,会的大牛快来解决一下啊
knightwayne 2011-11-24
  • 打赏
  • 举报
回复
你给的方法都是DataGrid,DataSet,dataview输出到EXCEL,我的是GridView,应该怎么操作啊?
zhangchi_wavenet 2011-11-24
  • 打赏
  • 举报
回复
Js导出Excel表格写在form标签之上(引用打印控件)<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" VIEWASTEXT></object><input id="Button2" type="button" value="导出Excel" onclick="AutomateExcel('rp');" class="btnstyle"/>function AutomateExcel(tid1) { if (!document.getElementById(tid1)) { alert("请您等待加载成报表后导数据!"); } else { try { var oXL = new ActiveXObject("Excel.Application"); var oWB = oXL.Workbooks.Add(); var oSheet = oWB.ActiveSheet; var sel = document.body.createTextRange(); sel.moveToElementText(document.getElementById(tid1)); sel.select(); sel.execCommand("Copy"); oSheet.Paste(); oXL.Visible = true; oXL = null; sel.execCommand("Unselect"); } catch (e) { alert("请您安装微软Excel办公组件及完全开放ActiveX,或询问系统管理员!"); } }}说明:给你的table加个id,OnClick中的rp就是你的id.
十月流氓 2011-11-24
  • 打赏
  • 举报
回复
500~1000数据量很小了,用传统的方式就可以

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧