首页 > 代码库 > C#将DataTable导出Execl、Word、Xml
C#将DataTable导出Execl、Word、Xml
/// <summary> /// 将DT转换为Execl的方法 /// </summary> /// <param name="dt">需要导出的DT /// <param name="page">页面 /// <param name="fileName">文件名 public void ToExecl(DataTable dt, Page page, string fileName) { HttpResponse response = page.Response; response.Clear(); response.ContentType = "application/x-excel"; response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls"); StringBuilder sB = new StringBuilder(); for (int j = 0; j < dt.Columns.Count; j++) { sB.Append(dt.Columns[j].Caption + "\t"); } sB.Append("\n"); for (int i = 0; i < dt.Rows.Count; i++) { for (int k = 0; k < dt.Columns.Count; k++) { sB.Append("=\"" + dt.Rows[i][k].ToString() + "\"\t"); //解决导出的单元格以科学计数法显示的问题 } sB.Append("\n"); } response.Write(sB.ToString()); response.End(); }public void ToWord(DataTable dt, Page page, string filName) { HttpResponse response = page.Response; response.Clear(); response.ContentType = "application/msword"; response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); response.AddHeader("Content-Disposition","attachment:filename="+System.Web.HttpUtility.UrlEncode(filName,System.Text.Encoding.UTF8)+".doc"); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < dt.Rows.Count; i++) { sBuilder.Append(dt.Rows[i][1].ToString()+"\n"); } response.Write(sBuilder.ToString()); response.End(); } public void ToXML(DataTable dt, Page page, string filename) { HttpResponse response = page.Response; //DataSet ds = new DataSet(); response.Clear(); response.ContentType = "application/x-excel"; response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename,System.Text.Encoding.UTF8) + ".xls"); System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding(); System.Xml.XmlTextWriter xw = new XmlTextWriter(response.OutputStream, utf8); xw.Formatting = Formatting.Indented; xw.Indentation = 4; xw.IndentChar = ‘ ‘; dt.TableName = "dd"; dt.WriteXml(xw); dt = null; GC.Collect(); xw.Flush(); xw.Close(); response.End(); }
来源:http://blog.csdn.net/smartsmile2012/article/details/8182862
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。