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() を使用することも検討してください。

于 2013-03-18T12:43:38.750 に答える