分享
 
 
 

DataTable内容导出为CSV文件

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: |||超大  

DataTable内容导出为CSV文件CSVHelper.cs内容:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Web; 6 using System.Threading; 7 using System.IO; 8 using System.Data; 9 using System.Windows.Forms; 10 11 namespace IMSCommonFunction 12 { 13 public class CSVHelper 14 { 15 public static string FilterCSVCell(string cellContent) 16 { 17 bool isAddFlag = false; 18 if (cellContent.IndexOf("\"") != -1) 19 { 20 cellContent = cellContent.Replace("\"", "\"\""); 21 cellContent = "\"" + cellContent + "\""; 22 isAddFlag = true; 23 } 24 if (cellContent.IndexOf(",") != -1 && isAddFlag != true) 25 { 26 cellContent = "\"" + cellContent + "\""; 27 } 28 return cellContent; 29 } 30 31 public static void ExportCSVFile(HttPResponse response, string fullPath, string Content) 32 { 33 try 34 { 35 response.Buffer = true; 36 response.Clear(); 37 response.Charset = System.Text.Encoding.Default.BodyName; 38 response.ContentEncoding = System.Text.Encoding.UTF8;// System.Text.Encoding.GetEncoding("GB2312");//GB2312用Excel打开时,没有乱码。 39 response.AppendHeader("Content-Disposition", "attachment;filename=" + fullPath); 40 response.ContentType = "application/ms-excel"; 41 response.Output.Write(Content); 42 response.Flush(); 43 response.End(); 44 } 45 catch (ThreadAbortException) 46 { 47 } 48 catch (Exception ex) 49 { 50 throw new ApplicationException(string.Format("Export CSV file have a error: {0}", fullPath), ex); 51 } 52 } 53 54 public static void FileDownload(string FullFileName) 55 { 56 FileInfo DownloadFile = new FileInfo(FullFileName); 57 System.Web.HttpContext.Current.Response.Clear(); 58 System.Web.HttpContext.Current.Response.ClearHeaders(); 59 System.Web.HttpContext.Current.Response.Buffer = false; 60 string extension = Path.GetExtension(FullFileName); 61 extension = string.IsNullOrEmpty(extension) ? extension : extension.ToLower(); 62 switch (extension) 63 { 64 case ".xml": 65 System.Web.HttpContext.Current.Response.ContentType = "text/xml"; 66 break; 67 default: 68 System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream"; 69 break; 70 } 71 string browser = System.Web.HttpContext.Current.Request.UserAgent.ToUpper(); 72 bool isNeedEncode = !browser.Contains("Firefox"); 73 System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + 74 (isNeedEncode ? System.Web.HttpUtility.UrlEncode(DownloadFile.Name, System.Text.Encoding.UTF8) : DownloadFile.Name)); 75 System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString()); 76 System.Web.HttpContext.Current.Response.Flush(); 77 if (System.Web.HttpContext.Current.Response.IsClientConnected) 78 System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName); 79 80 //出错 81 System.Web.HttpContext.Current.Response.End(); 82 System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest(); 83 } 84 85 public static void DataHtmlToExcel(HttpResponse response, DataTable dt, string strFileName) 86 { 87 string style = @"<style> .text { mso-number-format:\@; } </script> "; //设置格式 88 //设置Response 89 response.Clear(); 90 response.Buffer = true; 91 response.Charset = "utf-8"; 92 response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); 93 //Response.Charset = "utf-8"; 94 if (strFileName.Length > 0) 95 { 96 response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(strFileName))); 97 } 98 else 99 {100 response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls");101 }102 //Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");103 HttpContext.Current.Response.ContentType = "application/ms-excel";104 105 //绑定数据到DataGrid1106 System.Web.UI.WebControls.DataGrid DataGrid1 = new System.Web.UI.WebControls.DataGrid();107 DataGrid1.DataSource = dt.DefaultView;108 DataGrid1.DataBind();109 //将DataGrid1构成的html代码写进StringWriter110 //DataGrid1.Page.EnableViewState = false;111 System.IO.StringWriter tw = new System.IO.StringWriter();112 System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);113 DataGrid1.RenderControl(hw);114 115 response.Write(style);//注意116 response.Write(tw.ToString());117 response.Flush();118 response.End();119 }120 121 public static void ExportExcel(HttpResponse response, DataTable dt, string filename)122 {123 try124 {125 response.Clear();126 response.BufferOutput = true;127 response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");128 response.AppendHeader("Content-Disposition", "attachment;filename=" +129 HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(filename)));130 response.ContentType = "application/ms-excel";131 StringBuilder colHeaders = new StringBuilder();132 StringBuilder items = new StringBuilder();133 134 DataRow[] dr = dt.Select();135 136 int i = 0;137 int clength = dt.Columns.Count;138 139 for (i = 0; i < clength; i++)140 {141 if (i == clength - 1)142 {143 colHeaders.Append(dt.Columns[i].Caption.ToString() + "\n");144 }145 else146 {147 colHeaders.Append(dt.Columns[i].Caption.ToString() + "\t");148 }149 }150 response.Write(colHeaders.ToString());151 152 foreach (DataRow row in dr)153 {154 for (i = 0; i < clength; i++)155 {156 if (i == clength - 1)157 {158 items.Append(row[i].ToString() + "\n");159 }160 else161 {162 items.Append(row[i].ToString() + "\t");163 }164 }165 }166 response.Write(items.ToString());167 }168 catch (Exception ex)169 {170 response.Write(ex.Message);171 }172 finally173 {174 response.Flush();175 response.End();176 }177 }178 179 public static void DataTableToCSV(DataTable table, string file)180 {181 string title = "";182 FileStream fs = new FileStream(file, FileMode.Create);183 StreamWriter sw = new StreamWriter(new BufferedStream(fs), System.Text.Encoding.Default);184 for (int i = 0; i < table.Columns.Count; i++

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有