Datatable导出CSV
/// <summary> /// 导出数据到CSV文件 /// </summary> /// <param name="dtExportTable">需要导出的datatable</param> /// <param name="dicColumnsInfo">导出的列字典,key datable中的列,value需要导出的列名称</param> /// <param name="FilePath">导出的文件路径</param> public static void ExportCSV(DataTable dtExportTable, Dictionary<string, string> dicColumnsInfo,string FilePath) { List<string> notExist=new List<string>(); if(dtExportTable!=null&&dicColumnsInfo!=null) { foreach(string key in dicColumnsInfo.Keys) { if(!dtExportTable.Columns.Contains(key)) { notExist.Add(key); } } } foreach(string key in notExist) { dicColumnsInfo.Remove(key); } for(int i=dtExportTable.Columns.Count-1;i>=0;i--) { string colName=dtExportTable.Columns[i].ColumnName; if(!dicColumnsInfo.ContainsKey(colName)) { dtExportTable.Columns.RemoveAt(i); } } if (dtExportTable == null || dtExportTable.Columns.Count <= 0 || dtExportTable.Rows.Count <= 0 || dicColumnsInfo == null || dicColumnsInfo.Count <= 0 || string.IsNullOrEmpty(FilePath)) throw new Exception("导出条件不满足!"); StringBuilder sbResult=new StringBuilder(); int ColCount=dtExportTable.Columns.Count; string Header=string.Empty; for(int i=0;i<ColCount;i++) { if(String.IsNullOrEmpty(Header)) { Header = dicColumnsInfo[dtExportTable.Columns[i].ColumnName]; } else { Header += "," + dicColumnsInfo[dtExportTable.Columns[i].ColumnName]; } } sbResult.AppendLine(Header);//添加表头 foreach(DataRow dr in dtExportTable.Rows) { string rowstring=string.Empty; for(int i=0;i<ColCount;i++) { if(String.IsNullOrEmpty(rowstring)) { rowstring=dr[i].ToString(); } else { rowstring+=","+dr[i].ToString(); } } sbResult.AppendLine(rowstring); //添加行 } File.WriteAllText(FilePath,sbResult.ToString()); }
专业从事基于C#,WinForm ,WPF,Silverlight,WCF以及MS Sql Server 2000/2005/2008/2012 Oracle 9i/10g/11g数据库系统的ERP,CRM,企业进销存等各种数据库管理系统开发。Asp.net,Asp.net mvc,Webservice,WCF, Webapi等服务程序开发。
基于Oracle MySQL MSSql postgresql各种数据库的管理系统数据同步服务。以及基于MapXtreme, Arcgis Engine ,以及基于Arcgis for silverlight/Javascript的WebGIS等相关的GIS系统二次开发。基于Windows 10 Mobile的移动端开发方案。针对各种系统的二次开发维护,并提供相关开发的技术性支持,如程序BUG解决,应用系统架构,技术难题攻克等相关技术服务。
联系方式: QQ :80163278(devgis) 邮箱:devgis@qq.com