C#读写CSV文件帮助类

使用CsvHelper类库实现读取CSV文件到对象列表

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsvHelper;
using CsvHelper.Configuration;

namespace DataCollectionPlatform.Service.Utility
{
    public class MyCsvHelper
    {
        public static List ReadCsvByStream(Stream stream)
        {
            try
            {

                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                using (var reader = new StreamReader(stream, Encoding.GetEncoding("GB18030")))
                using (var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture)
                {
                    HeaderValidated = null,
                    MissingFieldFound = null,
                    PrepareHeaderForMatch = args => args.Header.ToLower()
                }))
                {
                    var foos = csv.GetRecords().ToList();

                    return foos.ToList();
                }


            }
            catch
            {

            }

            return new List();
        }
        public static List ReadCsv(string filePath)
        {
            try
            {


                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                using (var reader = new StreamReader(filePath, Encoding.GetEncoding("GB18030")))
                using (var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture)
                {
                    HeaderValidated = null,
                    MissingFieldFound = null,
                    PrepareHeaderForMatch = args => args.Header.ToLower()
                }))
                {
                    var foos = csv.GetRecords().ToList();

                    return foos.ToList();
                }


            }
            catch
            {

            }

            return new List();
        }

        public static bool ReadCsv(string filePath,List data)
        {
            try
            {

                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                using (var writer = File.CreateText(filePath))
                using (var csv = new CsvWriter(writer, new CsvConfiguration(CultureInfo.InvariantCulture)
                {
                    HeaderValidated = null,
                    MissingFieldFound = null,
                    PrepareHeaderForMatch = args => args.Header.ToLower()
                }))
                {
                   csv.WriteRecords(data);

                    return true;
                }


            }
            catch
            {

            }

            return false;
        }
    }
}
 

你可能感兴趣的:(c#,linq,.net)