将excel文件(.xls或.xlsx)的内容输入到数据集中

时间:2013-03-18 12:32:23

标签: c# asp.net exceldatareader

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

1 个答案:

答案 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”)都为真。