我有一个名为test.xls的excel文件,我希望将excel表中的内容放入数据集中。是否有可能 我尝试了一个代码,但它抛出异常,这是我的代码
string FilePath = Server.MapPath("portals\\_default") + "\\" + upprice.FileName;
upprice.PostedFile.SaveAs(FilePath);
FileStream stream = File.Open(FilePath, FileMode.Open, FileAccess.Read);
if (upprice.FileName.Contains(".xlsx"))
{
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
DataSet result = excelReader.AsDataSet();
}
答案 0 :(得分:2)
我假设你正在使用这个http://exceldatareader.codeplex.com/
从你的代码:
if (upprice.FileName.Contains(".xlsx"))
{
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
DataSet result = excelReader.AsDataSet();
}
else if (upprice.FileName.Contains(".xls"))
{
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
}
这些测试是倒退的。 “.xlsx”文件是压缩的xml文档。 “xls”是较旧的二进制文件。还要考虑使用System.IO.Path.GetExtension()来获取文件扩展名,因为您会注意到两种文件类型的包含(“。xls”)都为真。