C# Datatable导出CSV算法
来源:互联网 发布:spring源码深度百度云 编辑:程序博客网 时间:2024/04/30 03:15
/// <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());
}
/// 导出数据到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());
}
0 0
- C# Datatable导出CSV算法
- 将DataTable导出CSV
- datatable导出CSV
- C#_把dataTable数据导出到CSV,XLS文件
- DataTable 导出为csv格式文件
- xls xlsx csv 导出datatable
- C# 导出DataTable至csv文件
- c# DataTable针对xml、excel、csv导入和导出
- c# DataTable针对xml、excel、csv导入和导出
- 将datatable导出为Excel或CSV文件
- c# DataTable 针对xml、excel、csv导入和导出
- DataTable导出到Excel的解决方案(.csv)文件
- C#中将DataTable中数据导出到csv文件中
- DataTable针对xml、excel、csv导入和导出
- C# 将DataTable导出生成CSV文件串列问题
- C# DataTable 导出CSV 文件并在客户端下载
- C# DataTable 导出CSV 文件并在客户端下载
- C#中将DataTable中数据导出到csv文件中
- Android上如何确保消息被推送到
- 正则表达式
- a configuration error occured during startup
- Appium键盘处理
- 高效同步数据的方法及效率测试--边打包边压缩边传输边解压20150105
- C# Datatable导出CSV算法
- HowTo: Bash Extract Filename And Extension In Unix / Linux
- 把图片切成小片(IOS)
- 最简单的Curl实例
- 系统架构设计师考试
- C++11 auto and decltype
- MFC实现打开、保存文件对话框和浏览文件夹对话框
- TestBird果伦:手游开发前期的准备
- NSString特性分析学习