以下代码在第一次通过时执行良好,但在第二次通过
reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
抛出 System.ArgumentNullException: '值不能为空'
public IEnumerable<String[]> GetFileContents()
{
Stream stream = _originalFile.InputStream; // _originalFile is of type HttpPostedFileBase
IExcelDataReader reader = null;
if (_originalFile.FileName.EndsWith(".xls"))
{
reader = ExcelReaderFactory.CreateBinaryReader(stream);
}
else if (_originalFile.FileName.EndsWith(".xlsx"))
{
reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
}
else
{
throw new Exception("File format is not supported");
}
List<String[]> result = new List<String[]>();
Int32 fieldCount = reader.FieldCount;
StringBuilder builder = new StringBuilder();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount - 1; i++)
{
builder.AppendFormat("{0},", reader.IsDBNull(i) ? string.Empty : reader.GetString(i));
}
builder.Length--;
result.Add(builder.ToString().Split(','));
builder.Clear();
}
reader.Close();
reader.Dispose();
return result;
}