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

asp.net-mvc-3 – 使用csvhelper(nuGET)和C#MVC导入CSV文件

发布时间:2020-12-16 00:15:52 所属栏目:asp.Net 来源:网络整理
导读:通过NuGet提供的 http://csvhelper.com用于读取和写入CSV文件. CsvHelper允许您直接将CSV文件读入自定义类. 如下所示在question之前 var streamReader = // Create a reader to your CSV file.var csvReader = new CsvReader( streamReader );ListMyCustomTy
通过NuGet提供的 http://csvhelper.com用于读取和写入CSV文件.

CsvHelper允许您直接将CSV文件读入自定义类.

如下所示在question之前

var streamReader = // Create a reader to your CSV file.
var csvReader = new CsvReader( streamReader );
List<MyCustomType> myData = csvReader.GetRecords<MyCustomType>();

CsvReader will automatically figure
out how to match the property names
based on the header row (this is
configurable). It uses compiled
expression trees instead of
reflection,so it’s very fast.

It is also very extensible and
configurable.

我基本上试图找出如何读取带有标题(未知名称)的CSV文件并将记录读入自定义对象.

根本没有这方面的文档,所以想知道是否有人知道如何使用CsvReader将值按顺序放入字符串数组中,或者你会如何建议处理这个?

解决方法

这是我的第一个版本,我会更新,因为我修改了一些内容并使其更加完整,但这给了我字符串数组中的所有数据.
[HttpPost]
        public ActionResult UploadFile(HttpPostedFileBase file)
        {

            ICsvParser csvParser = new CsvParser(new StreamReader(file.InputStream));
            CsvReader csvReader = new CsvReader(csvParser);
            string[] headers = {};
            List<string[]> rows = new List<string[]>();
            string[] row;
            while (csvReader.Read())
            {
                // Gets Headers if they exist
                if (csvReader.HasHeaderRecord && !headers.Any())
                {
                    headers = csvReader.FieldHeaders;
                }
                row = new string[headers.Count()];
                for (int j = 0; j < headers.Count(); j++)
                {
                    row[j] = csvReader.GetField(j);
                }
                rows.Add(row);
            }
            ImportViewModel model = new ImportViewModel(rows);
            return View(model);
        }

(编辑:李大同)

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

    推荐文章
      热点阅读