由于项目需要把.csv文件中的信息写到数据库中,NPOI处理.csv文件不太好使所以得换一种方法,最后找到了LumenWorks.Framework.IO这个好东西,可以很方便的满足我的需求,引用也很方便直接在NuGet中安装即可。
示例代码如下:
public DataTable CsvToTable(Stream stream)
{
return CsvToTable(stream, 1);
}
public DataTable CsvToTable(Stream stream, int titleCount)
{
//如果遇到中文乱码情况可以设置一下编码字符集
Encoding _encode = Encoding.GetEncoding("GB2312");
using (stream)
{
using (StreamReader input = new StreamReader(stream, _encode))
{
using (CsvReader csv = new CsvReader(input, false))
{
DataTable dt = new DataTable();
int columnCount = csv.FieldCount;
for (int i = 0; i < columnCount; i++)
{
dt.Columns.Add("col" + i.ToString());
}
for (int i = 0; i < titleCount; i++)
{
csv.ReadNextRecord();
}
while (csv.ReadNextRecord())
{
DataRow dr = dt.NewRow();
for (int i = 0; i < columnCount; i++)
{
if (!string.IsNullOrWhiteSpace(csv[i]))
{
dr[i] = csv[i];
}
}
dt.Rows.Add(dr);
}
return dt;
}
}
}
}