易截截图软件、单文件、免安装、纯绿色、仅160KB

ASP.NET(C#) DataSet数据导出到Excel

今天给客户做了个功能需要把网格数据(Gridview)导出成Execl,所以我去网上找了个代码 private void Export(string FileType, string FileName)
...{
try
...{
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
grdSearch.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
catch (Exception err)
...{
DOMUtility.PopAlertWindow("导出Excel出错!错误原因:" + err.Message);
//return false;
}
}
但是这种方法的话只是把当前Gridview页导出到Excel,而客户需要把当前所以分页的数据导出到Excel,并且在客户端打开,所以想了想有几种方案:
1)将execl文件导出到服务器上,再下载。这样的话服务器中有多余的文件了。不通过
2)将DataSet中的数据导出Execl
private void DataTable2Excel(System.Data.DataTable dtData)
...{
System.Web.UI.WebControls.DataGrid dgExport = null;
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null;

if (dtData != null)
...{
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "";

strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind();

dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
先把datatable转换成DataGrid数据,然后通过DataGrid对象RenderControl的Response把数据返回给客户端,


相关文档:

语言喜爱程度:C > C++ > C#

曾经认为,学好C语言打遍天下无敌手。 后来发现为了面向对象,不得不用C++,后来发现面向对象果然是非常伟大的思想! 再后来,从VS6.0这个版本之后,VC就已经没有什么太大的变化了,MFC等等都已经稳定下来了,微软不玩了,微软跑到.net平台上面去玩了!!微软一些新的应用,全部都跑到.net平台上去了,VC平台个人觉得就剩 ......

影响ASP.Net应用性能的配置



影响ASP.Net应用性能的配置

1、删除不必要的HttpModule,每增加一个HttpModule,每个请求处理就多一点开销。
如:
<httpModules>
       & ......

学习asp.net C#

 1、DateTime   数字型  
System.DateTime   currentTime=new   System.DateTime();  
  1.1   取当前年月日时分秒  
currentTime=System.DateTime.Now;  
  1.2   取当前年  
int   年=currentTime.Year;  
  1.3   取当前月 &n ......

asp.net常用代碼


1.弹出对话框.
  a. 弹出对话框:
 
C# codeClientScript.RegisterStartupScript(this.GetType(), "",
"<script>window.alert('该会员没有提交申请,请重新提交!')</script>");
  b.转向指定页面
 
C# code Response.Write("
<script>window.location='http://www. ......

ASP.NET中GridView分页

方法一:
新建一个页面然后在页面拖一个GridView控件在属性框中设置GridView控件的AllowPaing属性为True 然后再设置GridView的PageSize属性,源文件如下:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames ="classId" CellPadding="5" OnRowDeleting="GridView1_RowDeleting" All ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号