CsvHelper:nuget地址

csv导出类||生成类

    public class CSVHeader
{
public string head1 { get; set; }
public string head2 { get; set; }
public string head3 { get; set; }
public string head4 { get; set; }
public string head5 { get; set; }
}

csv map 类

    public class CSVHeaderMap : CsvClassMap<CSVHeader>
{
public CSVHeaderMap()
{
Map(m => m.head1).Name("head1");
Map(m => m.head2).Name("head2");
Map(m => m.head3).Name("head3");
Map(m => m.head4).Name("head4");
Map(m => m.head5).Name("head5");
}
}

csv operate 类

    public class CSVHelper<T> where T : class
{
private static Logger _logger = NLog.LogManager.GetCurrentClassLogger(); public static string GeneralCSV(List<T> dataList, string csvFileName, string localPath)
{
if (dataList == null || dataList.Count == )
{
Console.WriteLine("no report date");
return "";
}
try
{
string localFileName = string.IsNullOrWhiteSpace(csvFileName) ? $"{DateTime.Now.ToString("yyyyMMddhhssmmm")}.csv" : csvFileName; if (!Directory.Exists(localPath))
{
Directory.CreateDirectory(localPath);
}
string csvContent = "";
using (FileStream fs = new FileStream(Path.Combine(localPath, localFileName), FileMode.Create, FileAccess.ReadWrite))
using (StreamWriter strW = new StreamWriter(fs, Encoding.UTF8))
{ csvContent = GenerateCsvContent(dataList); if (csvContent == null) return "";
strW.Write(csvContent);
}
return csvContent;
}
catch (Exception ex)
{
Console.WriteLine("GeneralCSV",
$"csvFileName:{csvFileName}, Path:{localPath}",
ex.Message);
return "";
}
} static string GenerateCsvContent(List<T> itemList, bool hasHeaderRecord = true)
{
try
{
using (StringWriter sWriter = new StringWriter())
{
CsvConfiguration config = new CsvConfiguration();
config.HasHeaderRecord = hasHeaderRecord;
//char soh = '\u0001';
//config.Delimiter = soh.ToString();
using (var csv = new CsvWriter(sWriter, config))
{
csv.WriteRecords(itemList); return sWriter.ToString();
}
}
}
catch (Exception ex)
{
var itemContent = JsonConvert.SerializeObject(itemList);
Console.Write("HDFSApiHelper.GenerateCsvFile"
, $"itemList:{itemContent}"
, ex.Message);
return null;
}
} public static List<T> GetEntityFromCSV<M>(Stream csvMemory,string delimiter=",") where M : CsvClassMap<T>
{
var csvReader = new StreamReader(csvMemory);
var csvConfig = new CsvConfiguration();
csvConfig.HasHeaderRecord = true;
csvConfig.RegisterClassMap<M>();
CsvReader csv = new CsvReader(csvReader, csvConfig);
return csv.GetRecords<T>().ToList();
} public static List<T> GetEntityFromCSV(Stream csvMemory, string delimiter = ",")
{
var csvReader = new StreamReader(csvMemory);
var temp = csvReader.ReadToEnd();
var csvConfig = new CsvConfiguration()
{
HasHeaderRecord = true,
IgnoreHeaderWhiteSpace = true,
IsHeaderCaseSensitive = false,
Delimiter = delimiter
};
var csv = new CsvReader(csvReader);
try
{
return csv.GetRecords<T>().ToList(); }
catch(Exception ex)
{
_logger.Error(ex.ToString());
}
return null;
}
}

csv test method

            List<CSVHeader> test = new List<CSVHeader>();
test.Add(new CSVHeader() { head1="",head2="",head3="",head4="",head5=""});
test.Add(new CSVHeader() { head1 = "", head2 = "", head3 = "", head4 = "", head5 = "" });
test.Add(new CSVHeader() { head1 = "", head2 = "", head3 = "", head4 = "", head5 = "" });
test.Add(new CSVHeader() { head1 = "", head2 = "", head3 = "", head4 = "", head5 = "" });
test.Add(new CSVHeader() { head1 = "", head2 = "", head3 = "", head4 = "", head5 = "" });
string csvDirectory = @"D:\Jimmy Team Project\Doc\2017-11-20日报表汇总\test\";
//生成csv
CSVHelper<CSVHeader>.GeneralCSV(test,"test.csv", csvDirectory); //csv获取list 数据
var mergeExcelPath = csvDirectory+ @"\result.xlsx";
using (FileStream fs = new FileStream(csvDirectory + @"test.csv", FileMode.Open, FileAccess.Read))
{
List<CSVHeader> date = CSVHelper<CSVHeader>.GetEntityFromCSV<CSVHeaderMap>(fs, ",");
}

Nuget CsvHelper 的使用的更多相关文章

  1. 常用库nuget包集合

    ColorConsole htmlagilitypack.1.4.9.5 经测试效率比 CsQueryLaster 高 csvhelper Extend Devlib系列一套 itextsharp l ...

  2. NuGet在2015中的使用

    NuGet Package Restore  https://docs.nuget.org/Consume/Package-Restore 以https://github.com/andburn/hd ...

  3. CsvHelper文档-1前言

    CsvHelper文档-1前言 英文文档链接地址:CsvHelper Document 开源项目地址:CsvHelper 翻译于2018-1-5,原本可能会随时更新: 每一段代码都是经过我实际测试的, ...

  4. nuget 包管理器

    nuget 是.Net平台上的包管理器, 对于包的发布(打包 package)和消费(下载依赖管理)都有很好的支持, 本文仅仅关注消费端, =======================nuget项目 ...

  5. NetCore利用CsvHelper解析支付宝对账单

    支付宝账单是zip压缩文件流,里面包含了两个.csv文件. 1.请求支付宝账单下载链接,获取到zip文件流. var httpClient = _clientFactory.CreateClient( ...

  6. NuGet镜像上线试运行

    为解决国内访问NuGet服务器速度不稳定的问题,我们用阿里云服务器搭建了一个NuGet镜像,目前已上线试运行. 使用NuGet镜像源的方法如下: 1)NuGet镜像源地址:https://nuget. ...

  7. 通过ProGet搭建一个内部的Nuget服务器

    .NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以 ...

  8. .NET Core 系列5 :使用 Nuget打包类库

    NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...

  9. 如何在nuget上传自己的包+搭建自己公司的NuGet服务器(新方法)

    运维相关:http://www.cnblogs.com/dunitian/p/4822808.html#iis 先注册一个nuget账号https://www.nuget.org/ 下载并安装一下Nu ...

随机推荐

  1. Njinx配置

    参考地址: NGINX的百度百科:https://baike.baidu.com/item/nginx/3817705?fr=aladdin NGINX的中文网站:http://www.nginx.c ...

  2. linux 二级域名设置

    首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com 其次,在 httpd.conf 中打开 mod_rewrite 之后,在 httpd.conf 的最后,添加以下内容: Rewr ...

  3. PLSQL 问题小记

    问题1:在一个拼写长字符串的函数中,若出现ora-06502或者ora-06512的错误,则有可能是在拼串的过程中,数据类型的隐式转换出了问题,如:字符类型转为数字,此时会出现错误. 解决方案:在拼串 ...

  4. 案例:通过shell脚本实现mysql数据备份与清理

    Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行,实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅如此,Sh ...

  5. The Little Prince-12/02

    The Little Prince-12/02 What moves me so deeply, about this little prince who is sleeping here, is h ...

  6. android 颜色值参考,(有颜色图

    ) 2011-10-13 19:55:30| 分类: android | 标签:android颜色值|字号大中小 订阅 Android 常用RGB值以及中英文名称   颜 色 RGB值 英文名 中文名 ...

  7. Spring Boot(十三):spring boot小技巧

    Spring Boot(十三):spring boot小技巧 一.初始化数据 我们在做测试的时候经常需要初始化导入一些数据,如何来处理呢?会有两种选择,一种是使用Jpa,另外一种是Spring JDB ...

  8. kafka学习指南(总结版)

    版本介绍 从使用上来看,以0.9为分界线,0.9开始不再区分高级/低级消费者API. 从兼容性上来看,以0.8.x为分界线,0.8.x不兼容以前的版本. 总体拓扑架构 从上可知: 1.生产者不需要访问 ...

  9. memset与malloc性能测试(转)

    前一段跟同事聊项目组已有的一些工具,同事讲里面有太多的malloc与memset,对性能的影响比较大,因此今天就在自己的机器上测试了这两个函数,不多说,上数据.测试环境:2.2GHZ.2G内存mems ...

  10. 第一章-硬件组成及linux发展历史(1)

    一.服务器与计算机的组成? 计算机组成主要有:CPU.硬盘.内存.电源.显示器.鼠标.键盘 服务器组成主要有:CPU.硬盘.内存.电源.RAID卡.远程控制卡 CPU: 即:中央处理器,是一块超大规模 ...