功能描述:

  • 集合转换为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. 跟我学android-使用Eclipse开发第一个Android应用(三)

    打开Eclipse,选择 File—New –Android Application Project Application Name  就是我们的 应用名称,也是我们在手机应用程序列表里看到的名称. ...

  2. Navicat 选择语句

    1.进入数据库后,点击Query 2.点击new query 3.左边提供界面的筛选条件,如果不清楚sql语句,可直接在上面操作 4.右边可自己编写sql语句 5.写完语句后,点击Run,在resul ...

  3. 栈的顺序存储方式的C语言实现

    /* 编译器:Dev-c++ 5.4.0 文件名:stack.cpp 代码版本号:1.0 时间:2015-10-10 20:08:54 */ #include <stdio.h> #inc ...

  4. Android 开发中使用 SQLite 数据库

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  5. The working copy xxxx needs to be upgraded to Subversion 1.7.

    原因是我在svn是低版本时候checkout的项目 而对方用的版本比我高 然后 我运行这个项目  就要求我  更新 如果我选择   对项目进行upgrade. 当 upgrade后 我的项目就在 现有 ...

  6. 使用UIImagePickerController时3DTouch引起Crash

    一.crash的场景 程序中用到UIImagePickerController时,如果在IPhone6S上运行APP,当forceTouch 一个图片时程序会crash,并附带如下crash mess ...

  7. 读取word文件.选择了TextParse

    待续! 代码还没分离出来.. 分离后会上传上来 不支持wps 文件 . ]]>

  8. out.print和out.write方法

    <%@ page language="java" import="java.util.*" %> <%@ page pageEncoding= ...

  9. ISO7816协议的块传输协议

    1.块传输协议中的前三个字节是强制必须有的 NAD节点地址: 当终端支持多个卡槽,终端和这些卡槽以总线的方式通讯时,该字节有用,其他情况下,默认为0 bit1-3:定义了源地址 bit5-7:定义了目 ...

  10. 输入一个单向链表,输出该链表中倒数第K个结点

    输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...