csv操作帮助类
功能描述:
- 集合转换为csv数据
- DataSe转换为csv数据
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text; namespace IM.Common
{
/// <summary>
/// csv操作
/// <para>创建作者:changjin</para>
/// <para>创建日期:2011/06/17</para>
/// </summary>
public class CsvHelper
{
public static string _seperator = ",";
public static string _bracer = "\"";
public static string _newline = "\n";
public static string _regex_special = ".*[,\n\"].*"; /// <summary>
/// 集合转换为csv数据
/// <para>创建作者:changjin</para>
/// <para>创建日期:2011/06/17</para>
/// </summary>
/// <param name="list">数据集合,行、列</param>
/// <returns>csv数据</returns>
public static string ToCsvData(List<List<string>> list)
{
string temp = string.Empty;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (List<string> row in list)
{
for (int i = ; i < row.Count; i++)
{
temp = row[i];
temp = (temp != null ? temp : "");
if (i != )
{
sb.Append(_seperator);
}
if (temp.Contains(_seperator) || temp.Contains(_bracer) || temp.Contains(_newline))
{
if (temp.Contains(_bracer))
{
temp = temp.Replace(_bracer, _bracer + _bracer);
}
if (temp.Contains(_newline))
{
temp = temp.Replace(_newline, "<br/>");
}
sb.Append(_bracer + temp + _bracer);
}
else
{
sb.Append(temp);
}
if (i == row.Count - )
{
sb.Append(_newline);
}
}
}
return sb.ToString();
} /// <summary>
/// DataSe转换为csv数据
/// <para>创建作者:changjin</para>
/// <para>创建日期:2011/06/17</para>
/// </summary>
/// <param name="ds">数据集</param>
/// <returns>csv数据</returns>
public static string ToCsvData(DataSet ds)
{
List<List<string>> list = new List<List<string>>();
if (ds != null && ds.Tables.Count > && ds.Tables[] != null)
{
DataTable dt = ds.Tables[];
List<string> columnNameList = new List<string>();
//添加列
if (dt.Columns.Count > )
{
foreach (DataColumn column in dt.Columns)
{
columnNameList.Add(column.ColumnName);
}
list.Add(columnNameList);
}
//迭代添加行记录
foreach (DataRow row in dt.Rows)
{
List<string> rowData = new List<string>();
foreach (string columnName in columnNameList)
{
rowData.Add(Convert.ToString(row[columnName]));
}
list.Add(rowData);
}
}
return ToCsvData(list);
}
}
}
csv操作帮助类的更多相关文章
- C# csv 操作类
using System.Data; using System.IO; using System.Text; namespace YanZhiwei.DotNet2.Utilities.Common ...
- 一个封装好的CSV文件操作C#类代码
using System.Data; using System.IO; namespace DotNet.Utilities { /// <summary> /// CSV文件转换类 // ...
- 【转载】 C#工具类:Csv文件转换类
CSV是逗号分隔值格式的文件,其文件以纯文本形式存储表格数据(数字和文本).CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号 ...
- XML格式示例 与 XML操作(读取)类封装
header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...
- Java CSV操作(导出和导入)
Java CSV操作(导出和导入) CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件 ...
- 简洁的PHP操作SQLite类
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了. ...
- C#工具类:Json操作帮助类(转载)
原文转载自C#工具类:Json操作帮助类_IT技术小趣屋. Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来 ...
- 【转载】C#工具类:Json操作帮助类
Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来简化相应的操作,该工具类中包含以下功能:对象转JSON.数据 ...
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类
在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
随机推荐
- Q我音乐
- 正确设置网站title、keywords、description(转载)
本文转载自蚂蚁HR(www.mayihr.com) 优化技巧是老师在课堂上教不了你的,而自己也不可能在练习中领悟,最便捷的方法就是听取别人的经验,所以转载一下 1.title(网站标题) title, ...
- C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)
一.什么是Entity Framework 1.1 实体框架(EF)是一个对象关系映射器,使.NET开发人员使用特定于域的对象与关系数据.它消除了需要开发人员通常需要编写的大部分数据访问代码.简化了原 ...
- JS 对象、HTML事件处理、JS 类型转换、Date
1. JS 对象 <script> var Person = new Object(); Person.id = 1; Person.name = "Hello World&qu ...
- 3D touch 的 应用 --备用
在iPhone 6s和iPhone 6s Plus中Apple引入了3D Touch技术.3D Touch的触控技术,被苹果称为新一代多点触控技术.其实,就是此前在Apple Watch上采用的For ...
- SPSS相关和回归分析
1.语文和数学成绩都受IQ的影响而且相互影响,则分析语文和数学的关系时需要偏相关分析.2.距离分析用于探索相似性,比如给了某年的12个月三个城市的气温数据,然后分析,会得到一个相似性矩阵,这是个对称阵 ...
- VS2013下的Nmake编译链接成win XP的可执行程序
nmake下没有指定toolset=vc120_xp等类似物.但是,可以指定Link.exe的链接参数,指定子系统就可以了,/SUBSYSTEM:[WINDOWS | CONSOLE],5.01 5. ...
- Hadoop CombineFileInputFormat实现原理及源码分析
Hadoop适用于少量的大文件场景,而不是大量的小文件场景(这里的小文件通常指文件大小显著小于HDFS Block Size的文件),其主要原因是因为FileInputFormat在为这些小文件生成切 ...
- SherlockActivity也可以用依赖注入的方法:
场景: 一个Activity必须继承RoboActivity才可以使用依赖注入. 若一个Activity已经继承了别的Activity了.比如SherlockActivity 如何才能使用依赖 ...
- 黑马程序员_Java基础常识
一.基础常识 1,软件开发 1)什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 常见的软件 系统软件 如:DOS,windows,Linux等. 应用软件: 如:扫雷,迅雷,QQ等 ...