C#读写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<T> ReadCsvByStream<T>(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<T>().ToList();
return foos.ToList();
}
}
catch
{
}
return new List<T>();
}
public static List<T> ReadCsv<T>(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<T>().ToList();
return foos.ToList();
}
}
catch
{
}
return new List<T>();
}
public static bool ReadCsv<T>(string filePath,List<T> 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<T>(data);
return true;
}
}
catch
{
}
return false;
}
}
}