功能描述:

  • 集合转换为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操作帮助类的更多相关文章

  1. C# csv 操作类

    using System.Data; using System.IO; using System.Text; namespace YanZhiwei.DotNet2.Utilities.Common ...

  2. 一个封装好的CSV文件操作C#类代码

    using System.Data; using System.IO; namespace DotNet.Utilities { /// <summary> /// CSV文件转换类 // ...

  3. 【转载】 C#工具类:Csv文件转换类

    CSV是逗号分隔值格式的文件,其文件以纯文本形式存储表格数据(数字和文本).CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号 ...

  4. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

  5. Java CSV操作(导出和导入)

    Java CSV操作(导出和导入)  CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件 ...

  6. 简洁的PHP操作SQLite类

    SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了. ...

  7. C#工具类:Json操作帮助类(转载)

    原文转载自C#工具类:Json操作帮助类_IT技术小趣屋. Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来 ...

  8. 【转载】C#工具类:Json操作帮助类

    Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来简化相应的操作,该工具类中包含以下功能:对象转JSON.数据 ...

  9. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

随机推荐

  1. 认识CSS样式

    CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小.颜色.字体加粗等. 如下列代码: p{ font-size: ...

  2. cas sso单点登录系列7_ 单点登录cas常见问题系列汇总

    转:http://blog.csdn.net/matthewei6/article/details/50709252 单点登录cas常见问题(一) - 子系统是否还要做session处理?单点登录ca ...

  3. 【转】K短路

    K短路 用dijsktra+A*启发式搜索 当点v第K次出堆的时候,这时候求得的路径是k短路.A*算法有一个启发式函数f(p)=g(p)+h(p), 即评估函数=当前值+当前位置到终点的最短距离g(p ...

  4. 【USACO 3.1.1】最短网络

    [描述]      农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的场.当然,他需要你的帮助.     约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共 ...

  5. Delphi 串口通信(1)

    利用 Delphi实现串口通信的常用的方法有 3种: 一是利用控件,如 MSCOMM控件和 SPCOMM控件: 二是使用 API函数: 三是调用其他串口通信程序.其中利用 API编写串口通信程序较为复 ...

  6. underscorejs-reduceRight学习

    2.4 reduceRight 2.4.1 语法: _.reduceRight(list, iteratee, memo, [context]) 2.3.2 说明: reduceRight和reduc ...

  7. id 自增------删除数据后恢复到删除前自增id

    删除数据后,执行下面语句: ALTER TBALE TableName AUTO_INCREMENT=1 mysql删除比较 一.DROP drop  table tablename 绝招:删除内容和 ...

  8. ucenter 通信原理

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证. 2.如果验证成功,将调用位 ...

  9. JS小技巧大本事(持续更新)

    1. 复制N个字符 String.prototype.repeat = function(num){ return (new Array(++num)).join(this); } var a = ' ...

  10. P1066 2^k进制数

    传送门 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进 ...