完整的asp.net 导出table到Excel中
2014-05-15 10:48
344 查看
导出excel/Word类
public class HtmlDataToDocOrExcel { private Page _InvokePage; /// <summary> /// 调用的页面 /// </summary> public Page InvokePage { get { return _InvokePage; } set { _InvokePage = value; } } /// <summary> /// 构造函数 /// </summary> /// <param name="invoke_page">调用的页面,参数传this.Page</param> public HtmlDataToDocOrExcel(Page invoke_page) { _InvokePage = invoke_page; } /// <summary> /// Table导出excel /// </summary> /// <param name="tab"></param> /// <param name="fileName"></param> //public void TableDataToExcel(System.Web.UI.HtmlControls.HtmlTable tab, string fileName) //{ // if (fileName.ToLower().IndexOf(".xls") == -1) // { // fileName = fileName + ".xls"; // } // TableExport(tab, fileName, "application/ms-excel"); // //TableExport(tab, fileName, "application/vnd.ms-excel.numberformat:+0;-0;0");//Excel文本格式 //} public void TableDataToExcel(System.Web.UI.HtmlControls.HtmlGenericControl tab, string fileName,bool isFireFox) { if (fileName.ToLower().IndexOf(".xls") == -1) { fileName = fileName + ".xls"; } TableExport(tab, fileName, "application/ms-excel",isFireFox); //TableExport(tab, fileName, "application/vnd.ms-excel.numberformat:+0;-0;0");//Excel文本格式 } /// <summary> /// Table导出Word /// </summary> /// <param name="tab"></param> /// <param name="fileName"></param> /// <param name="styleText"></param> public void TableDataToWord(System.Web.UI.HtmlControls.HtmlGenericControl tab, string fileName, bool isFireFox) { if (fileName.ToLower().IndexOf(".doc") == -1) { fileName = fileName + ".doc"; } TableExport(tab, fileName, "application/ms-word",isFireFox); } /// <summary> /// 导入数据,保存文档 /// </summary> /// <param name="tab"></param> /// <param name="fileName"></param> /// <param name="typeName"></param> /// <param name="styleText"></param> private void TableExport(System.Web.UI.HtmlControls.HtmlGenericControl tab, string fileName, string typeName,bool isFireFox) { System.Web.HttpResponse httpResponse = _InvokePage.Response; httpResponse.Clear(); httpResponse.Buffer = true; httpResponse.Charset = "gb2312";// "GB2312"; //Response.Charset = "UTF-8"; httpResponse.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>"); if (isFireFox == true) { fileName = "\"" + fileName + "\""; httpResponse.AppendHeader("Content-Disposition", "attachment;filename=" + fileName); } else { httpResponse.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8).ToString()); } httpResponse.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); httpResponse.ContentType = typeName; _InvokePage.EnableViewState = false; StringWriter tw = new StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); tab.RenderControl(hw); // httpResponse.Write(styleText); httpResponse.Write(tw.ToString()); httpResponse.End(); } }
调用方法:
protected void Button1_Click(object sender, EventArgs e) { string fileName = "测试-20130231.xls"; bool isFireFox = false; if (Request.ServerVariables["http_user_agent"].ToLower().IndexOf("firefox") != -1) { isFireFox = true; } //styleText=@"<style> td { mso-number-format:'+0.00;-0.00;0.00';text-align: center; } </style> "; HtmlDataToDocOrExcel hdtd = new HtmlDataToDocOrExcel(this.Page); //hdtd.TableDataToWord(tbData, fileName);//导出world hdtd.TableDataToExcel(divData, fileName, isFireFox);//导出Excel }
相关文章推荐
- 【ASP.NET】C# 将HTML中Table导出到Excel(TableToExcel)
- ASP.NET的HTMLTable原样导出到Excel
- asp.net 导出Table到Excel,数字前的加号无法显示的问题
- ASP.net MVC把Html Table导出Excel
- asp.net table页面内容导出到Excel
- asp.net导出Excel完整代码,乱码解决方案
- asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
- ASP.NET中的GridView导出为EXCEL完整介绍
- 在ASP.net中,不引用第三方类库的、轻便的、将报表导出到Excel中的方法
- 将ASP.NET页面内的数据导出到Excel 或 Word中
- 将ASP.NET页面内的数据导出到Excel 或 Word中
- ASP.NET控件导出至EXCEL
- [整理]asp.net导出Excel/Csv格式数据方案
- Asp.net中把DataTable或DataGrid导出为Excel
- asp.net导出Excel文件之方法比较
- 在asp.net中实现dataset与excel的相互导入导出
- 将从SQL数据库中查询出来的数据导出为Excel文档ASP.NET(VB)?
- sql server 与 excel 互导以及在asp.net中从DataTable导出到excel
- ASP.NET中导出excel/word等类型文件的简单方法
- 将ASP.NET页面内的数据导出到Excel 或 Word中