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语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
随机推荐
- [转]STL的内存分配器
题记:内存管理一直是C/C++程序的红灯区.关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面 ...
- 【USACO 2.3.1】最长前缀
[题目描述] 在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的.生物学家对于把长的序列分解成较短的序列(即元素)很感兴趣. 如果一个集合 P 中的元素可以通过串联(元素可以重复使用,相当 ...
- MyBatis学习笔记(1) —— 基础知识
mybatis 是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,mybatis 清除了几乎所有的jdbc代码和参数的手工设置及对结果集的检索封装.mybatis可以使用简单的xml和注解用于 ...
- (转载)让ie6也支持max-width,和max-height实现图片等比例缩放
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- git config --global core.excludesfile配置gitignore全局文件
Linux中,这时把全局要忽略的文件列表.gitignore放当前用户根目录下: git config --global core.excludesfile '~/.gitignogtire' Win ...
- 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程
学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
- 柔性数组-读《深度探索C++对象模型》有感 (转载)
最近在看<深度探索C++对象模型>,对于Struct的用法中,发现有一些地方值得我们借鉴的地方,特此和大家分享一下,此间内容包含了网上搜集的一些资料,同时感谢提供这些信息的作者. 原文如下 ...
- Rxjava+Retrofit2+Okhttp3多文件上传(服务器端代码+客户端代码)
所有代码亲测可用,如有问题,欢迎指正. 首先在ApiService接口文件中新建文件上传接口 public interface ApiService { static final String BAS ...
- mongodb 教程三
mongodb 实际上是保存json的数据的结构.当查询 是修改时 key 是可以用''保存. mongodb 插入语句 db.weixin.insert({name:'zhangfeng',age ...
- unwrap_uvw 笔记
<integer><Unwrap_UVW>.numberVerticesByNode <node>node --返回图顶点的对应于给定节点的Unwrap_UVW点总 ...