using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text; namespace Comon
{
public class CsvUtil
{
/// <summary>
/// 生成Csv格式的字符串
/// </summary>
/// <typeparam name="T">数据源类型</typeparam>
/// <param name="sourceDate">数据源</param>
/// <param name="generateFileldDict">需要生成到Csv格式字段及描述</param>
/// <returns></returns>
public static string GenerateCsvFormate<T>(IList<T> sourceDate, IDictionary<string, string> generateFileldDict)
where T : class, new()
{
if (sourceDate == null)
{
throw new ArgumentNullException(nameof(sourceDate));
} Type type = typeof(T);
PropertyInfo[] propertyInfos = type.GetProperties(); IList<string> fieldValueList = new List<string>(generateFileldDict.Count); StringBuilder builder = new StringBuilder(); foreach (var filedName in generateFileldDict.Values)
{
fieldValueList.Add(filedName);
}
builder.AppendLine(string.Join(",", fieldValueList)); foreach (var item in sourceDate)
{
fieldValueList.Clear();
foreach (var field in generateFileldDict.Keys)
{
PropertyInfo property = propertyInfos.FirstOrDefault(c => c.Name == field);
if (property != null)
{
var fieldValue = property.GetValue(item).ToString();
fieldValueList.Add(fieldValue);
}
}
builder.AppendLine(string.Join(",", fieldValueList));
}
return builder.ToString();
}
}
}

  

生成Csv格式的字符串的更多相关文章

  1. julia生成指定格式的字符串.jl

    julia生成指定格式的字符串.jl """ julia生成指定格式的字符串.jl http://bbs.bathome.net/thread-39829-1-1.htm ...

  2. php生成CSV格式(转)

    参考网址: php对csv文件的常用操作集合 http://blog.xhbin.com/archives/748 1,下载CSV格式文档 唯一需要特别注意的是编码. <? include_on ...

  3. 用命令行的方式把jmeter结果文件JTL生成csv格式的聚合报告

    我们知道 利用jmeter 的GUI的 Aggragate Listner 很容易把一个JTL 文件另存为CSV 文件,该CSV 文件中自动分析了 Transactions 的 90%, Median ...

  4. 生成csv格式文件并导出至页面的前后台实现

    一.前台实现: 1. HTML: <div> <a href="javascript:void(0);" class="btnStyleLeft&quo ...

  5. 监控自己的电脑浏览器访问记录并生成csv格式

    #!usr/bin/env python #-*- coding:utf-8 _*- """ @author:lenovo @file: 获取浏览器历史记录.py @ti ...

  6. Django生成CSV文件

    1.生成CSV文件 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 2.生成小的CSV文件 这里将用一个生成小的CSV文 ...

  7. java导出生成csv文件

    首先我们需要对csv文件有基础的认识,csv文件类似excel,可以使用excel打开,但是csv文件的本质是逗号分隔的,对比如下图: txt中显示: 修改文件后缀为csv后显示如下: 在java中我 ...

  8. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...

  9. node转发请求 .csv格式文件下载 中文乱码问题 + 文件上传笔记

    用户无法直接访问后台接口 需要node端转发请求 并将数据以.csv文件格式生成以供客户端下载. 很不幸出现了中文乱码的问题 挖了各种坟帖,下了各种依赖包,csv.json2csv.bufferHel ...

随机推荐

  1. cassandra vs mongo (1)存储引擎

    摘要 在MongoDB 初识篇中谈到过Mongo 与 Cassandra的区别,这边再谈谈Mongo与Cassandra的存储引擎差别 概括 存储引擎: 类型 功能 应用 hash 增删改.随机读.顺 ...

  2. Swagger2 添加HTTP head参数

    大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数.然后自己去网上找, ...

  3. python预编译函数compile,exec,eval

    funcname = "func" func = "def %s():\n" % funcname funccontent = 'print "hel ...

  4. Redis哨兵

    Redis Sentinel Redis哨兵为Redis提供高可用.这就意味着你用哨兵可以创建一个Redis部署,在没有人为干预的情况下抵抗某些失败.(PS:自动故障转移) Redis哨兵还提供其他的 ...

  5. CompletableFuture基本用法

    异步计算 所谓异步调用其实就是实现一个可无需等待被调用函数的返回值而让操作继续运行的方法.在 Java 语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结 ...

  6. Unity资源 ----加载最好需要做哪些事

    先上图解 一.基本关键词 1)AssetBundle:一种保存“一个或多个资源的转变为某种利于传输等的特殊格式(二进制之类)”的文件.(我这边是使用Unity制作手游的角度来说明) 简称AB. 2)对 ...

  7. ES 03 - 初探Elasticsearch的主要配置文件(以6.6.0版本为例)

    目录 1 elasticsearch.yml(ES服务配置) 1.1 Cluster集群配置 1.2 Node节点配置 1.3 Paths路径配置 1.4 Memory内存配置 1.5 Network ...

  8. source map 的原理探究

    线上产品代码一般是编译过的,前端的编译处理过程包括不限于 转译器/Transpilers (Babel, Traceur) 编译器/Compilers (Closure Compiler, TypeS ...

  9. Vim编辑器显示行数

    很多时候,我们编写代码的时候,编译器报错,在某一行,这时我们虽然可以:行数来跳转,但是没有直观的行数,总是感觉不妥,vi和vim默认是没有行号的,那么怎么办呢?下面我就教你怎么设置行号. 工具: 一台 ...

  10. Ansible快速上手

    ansible 是通过python 语言开发的自动化运维工具,可以实现批量系统设置.批量程序部署.批量执行命令等功能 下面是基于docker使用ansible测试示例,可以让新手快速上手使用 一.新建 ...