我有以下代码,可以导入Excel文档并解析它们,以便在保存到数据库之前操纵数据。
我可以很好地解析.xlsx和.xls文件,但无法弄清如何使用现有代码来处理.csv文件。
我正在为的客户希望使用.csv文件类型来接受特殊字符。
OpenFileDialog opener = new OpenFileDialog();
opener.Filter = "Excel Files| *.xlsx;*.xls;*.csv;";
if (opener.ShowDialog() == DialogResult.Cancel)
return;
FileStream streamer = new FileStream(opener.FileName, FileMode.Open);
IExcelDataReader reader;
if (Path.GetExtension(opener.FileName) == ".xls")
{
reader = ExcelReaderFactory.CreateBinaryReader(streamer);
}
else if (Path.GetExtension(opener.FileName) == ".csv")
{
*** Need Something Here to read CSV Files that will work with
the rest of code***
}
else
{
reader = ExcelReaderFactory.CreateOpenXmlReader(streamer);
}
DataSet results = reader.AsDataSet();
results.Tables[0].Rows[0].Delete();
results.AcceptChanges();
foreach (System.Data.DataTable table in results.Tables)
{
foreach (DataRow dr in table.Rows)
{
>>> Do Something With the Data
}
}
csv
文件相当简单,只需打开文件并逐行读取即可。你所说的特殊字符是什么意思? - undefined.Split(',')
,那远远不能保证完全正确。如果你指的是Visual Basic解析器,那它并不是真正按行读取(在引号括起来的CSV字段中可能会有换行符等)。 - undefined