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

C#使用Linq to csv读取.csv文件数据2_处理含有非列名数据的方法

发布时间:2020-12-16 08:57:19 所属栏目:asp.Net 来源:网络整理
导读:第一篇博客为:https://www.cnblogs.com/lxhbky/p/11884474.html 本文主要是为了解决上面博客遗留的一个含有不规范数据的一种方法,目前暂时没有从包里发现可以从第N行读取数据方法,但是我们可以假设一种情况来兼容目前的数据: 超级假设:假设Excel所有的

  第一篇博客为:https://www.cnblogs.com/lxhbky/p/11884474.html

  本文主要是为了解决上面博客遗留的一个含有不规范数据的一种方法,目前暂时没有从包里发现可以从第N行读取数据方法,但是我们可以假设一种情况来兼容目前的数据:

  

  超级假设:假设Excel所有的数据都是我要收集的数据,不管是否有数据或者是不规范的数据,那么我可以将接受类的数据类型统一改为string,其他保持不变。

  (这里注意通过改造属性的set方法来兼容的方式,本人已经试过,行不通;另外也测试了decimal?可为null的数据类型也不行,不是直接蹦了就是各种报错)

?

  改造接受类如下:

public class WP
        {
            /// <summary>
            /// 管理代码
            </summary>
            [CsvColumn(Name = "Administration Code",FieldIndex = 1)]
            string AdministrationCode { get; set; }
             日期
            Date4string Date {  支付金额
            Amount8string Amount { ; }
        }

  帮助类略作修改:

  

 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()
            {
                //(默认)数据分隔符(默认“,”)
                SeparatorChar = ','(由true改为false,当成数据处理)首列数据是否含有列名
                FirstLineHasColumnNames = false是否启用CsvColumn属性标记
                EnforceCsvColumnAttribute = true是否忽略未知的行
                IgnoreUnknownColumns = (移除属性格式化配置)是否启用OutputFormat格式转换数据
                USEOutputFormatForParsingCsvValue = true,1)">是否启用属性下标读取数据
                UseFieldIndexForReadingData = 
            };
            (编辑:李大同)

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

    推荐文章
      热点阅读