0

我有一个名为 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();
 }
4

1 回答 1

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() 来获取文件扩展名,因为您会注意到 Contains(".xls") 对于两种文件类型都是正确的。

于 2013-03-18T12:43:38.750 回答