CSV文件导入到DataTable方法,判断CSV文件的编码格式,国内一般是gb2312或者UTF8编码,代码简洁实用
/// <summary>
/// 读取CSV文件数据导入到DataTable
/// </summary>
/// <param name="file">CSV文件完整路径</param>
/// <param name="startRow">开始行,从0开始,0为第一行</param>
public static DataTable CsvToDataTable(string file, int startRow)
{
DataTable dt = new DataTable();
//判断CSV文件编码
Byte[] buffer = File.ReadAllBytes(file);
Encoding coding = Encoding.GetEncoding(936);//默认指定gb2312编码
if (buffer[0] >= 0xEF)
{
if (buffer[0] == 0xEF && buffer[1] == 0xBB)
coding = Encoding.UTF8;
else if (buffer[0] == 0xFE && buffer[1] == 0xFF)
coding = Encoding.BigEndianUnicode;
else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
coding = Encoding.Unicode;
}