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语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
随机推荐
- 跟我学android-使用Eclipse开发第一个Android应用(三)
打开Eclipse,选择 File—New –Android Application Project Application Name 就是我们的 应用名称,也是我们在手机应用程序列表里看到的名称. ...
- Navicat 选择语句
1.进入数据库后,点击Query 2.点击new query 3.左边提供界面的筛选条件,如果不清楚sql语句,可直接在上面操作 4.右边可自己编写sql语句 5.写完语句后,点击Run,在resul ...
- 栈的顺序存储方式的C语言实现
/* 编译器:Dev-c++ 5.4.0 文件名:stack.cpp 代码版本号:1.0 时间:2015-10-10 20:08:54 */ #include <stdio.h> #inc ...
- Android 开发中使用 SQLite 数据库
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...
- The working copy xxxx needs to be upgraded to Subversion 1.7.
原因是我在svn是低版本时候checkout的项目 而对方用的版本比我高 然后 我运行这个项目 就要求我 更新 如果我选择 对项目进行upgrade. 当 upgrade后 我的项目就在 现有 ...
- 使用UIImagePickerController时3DTouch引起Crash
一.crash的场景 程序中用到UIImagePickerController时,如果在IPhone6S上运行APP,当forceTouch 一个图片时程序会crash,并附带如下crash mess ...
- 读取word文件.选择了TextParse
待续! 代码还没分离出来.. 分离后会上传上来 不支持wps 文件 . ]]>
- out.print和out.write方法
<%@ page language="java" import="java.util.*" %> <%@ page pageEncoding= ...
- ISO7816协议的块传输协议
1.块传输协议中的前三个字节是强制必须有的 NAD节点地址: 当终端支持多个卡槽,终端和这些卡槽以总线的方式通讯时,该字节有用,其他情况下,默认为0 bit1-3:定义了源地址 bit5-7:定义了目 ...
- 输入一个单向链表,输出该链表中倒数第K个结点
输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...