码迷,mamicode.com
首页 > Windows程序 > 详细

读取csv 文件 c#

时间:2018-11-13 02:31:10      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:return   turn   odi   spl   continue   get   substr   oid   adc   

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ReadCSV
{
    class Program
    {
        public static void Main(string[] args)
        {
            List<Contract> list = ReadCSV(@"?C:\Users\Administrator\Source\Repos\ReadCSV\ReadCSV\bin\Debug\EE4.csv");

        }
        public static List<Contract> ReadCSV( string path)
        {
            
            List<Contract> list = new List<Contract>();
            StreamReader sr = new StreamReader("EE6.csv", Encoding.UTF8);
            String line;
            while ((line = sr.ReadLine()) != null)
            {
                if (line.Contains("DisplayName"))
                    continue;
                list.Add(readlineToContract(line, 15));
            }
            return list;
        }

        public static Contract readlineToContract(string line, int count)
        {
            Contract contract = new Contract();
            string[] strArray = line.Split(,);
            if (count == strArray.Count())
            {
                contract.Name = strArray[4];
                contract.DisplayName = strArray[5];
                contract.Type = strArray[8];
                contract.Category = strArray[9];
                contract.State = strArray[10];
                contract.Stage = strArray[11];
            }
            else
            {
                //deal with doublue " contains ,
                List<string> temp = new List<string>();
                for (int i = 0; i < line.ToArray().Length; i++)
                {
                    if (line[i] != ")
                    {
                        int index = line.IndexOf(",", i);
                        if (index == -1)
                            temp.Add(line.Substring(i));
                        else
                        {
                            temp.Add(line.Substring(i, index - i));
                            i = index;
                        }
                    }
                    else if (line[i] == ,)
                    {
                        temp.Add(string.Empty);
                    }
                    else if (line[i] == ")
                    {
                        int index = line.IndexOf("\"", i+1);
                        temp.Add(line.Substring(i+1, index - i-1));
                        i = index;
                    }

                }
                if (line.EndsWith(",")) temp.Add(string.Empty);

                contract.Name = temp[4];
                contract.DisplayName = temp[5];
                contract.Type = temp[8];
                contract.Category = temp[9];
                contract.State = temp[10];
                contract.Stage = temp[11];
            }
            return contract;
        }
    }

    class Contract
    {
        public string Name { set; get; }
        public string DisplayName { set; get; }
        public string Type { set; get; }
        public string Category { set; get; }
        public string State { set; get; }
        public string Stage { set; get; }


    }
}

 

读取csv 文件 c#

标签:return   turn   odi   spl   continue   get   substr   oid   adc   

原文地址:https://www.cnblogs.com/skywss27/p/9949722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!