加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

C#使用Linq to csv读取.csv文件数据

发布时间:2020-12-16 08:57:42 所属栏目:asp.Net 来源:网络整理
导读:前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致。其他同事有使用linq to csv的Nuget包,获取CSV文件数据的方式,感觉写法非常简单,且很快实现

  前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致。其他同事有使用linq to csv的Nuget包,获取CSV文件数据的方式,感觉写法非常简单,且很快实现了我的需求,现分享给大家参考使用:

  LinqToCsv官方资料:https://www.codeproject.com/Articles/25133/LINQ-to-CSV-library  

?

  1-引用Nuget包:LinqToCsv:https://www.nuget.org/packages/LinqToCsv

  2-创建CSV帮助类:

public class CSVHelper
    {
        static List<T> Read<T>(string path,CsvFileDescription fileDescription) where T : class,new()
        {
            CsvContext _csv =  CsvContext();
            return _csv.Read<T>(path,fileDescription).ToList();
        }
        string path)  CsvContext();
            CsvFileDescription _fileDescription =  CsvFileDescription()
            {
                //首列数据是否含有列名
                FirstLineHasColumnNames = true,是否启用CsvColumn属性标记
                EnforceCsvColumnAttribute = 是否忽略未知的行
                IgnoreUnknownColumns = 是否启用OutputFormat格式转换数据
                USEOutputFormatForParsingCsvValue = 是否启用属性下标读取数据
                UseFieldIndexForReadingData = 文本编码格式
                TextEncoding = Encoding.UTF8
            };
            
 WP
        {
            /// <summary>
            /// 管理代码
            </summary>
            [CsvColumn(Name = "Administration Code",FieldIndex = 1,CanBeNull = false)]
            string AdministrationCode { get; set; } 日期
            Date4,1)">false,OutputFormat = yyyy-MM-dd HH:mm:ss"public DateTime Date {  支付金额
            Amount8,1)">Cdecimal Amount { ; }
        }

  4-使用方式:

CSVHelper.Read<OrderTransaction.WP>(filePath);

?

  5-待解决疑问:

  上面的代码可以解决规范的CSV文件数据的读取(即CSV文件中不包含其他杂乱数据),如果文档的前几行含有一些其他说明信息的话,那么数据的读取可能遇到问题。而包里并没有提供可以设置开始读取数据的行数,所以,有点遗憾!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读