使用FileHelpers使用MVC 5导入Excel数据

我正在尝试在MVC 5中编写一个应用程序,该应用程序将接受用户指定的文件并将该文件信息上载到数据库中。 该文件本身有多个工作表,我认为FileHelpers正常处理,但我找不到任何关于使用字节数组的好文档。 我可以很好地获取文件,并find我的控制器,但不知道从哪里去。 我目前正在控制器中执行此操作:

public ActionResult UploadFile(string filepath) { //we want to check here that the first file in the request is not null if (Request.Files[0] != null) { var file = Request.Files[0]; byte[] data = new byte[file.ContentLength]; ParseInputFile(data); //file.InputStream.Read(data, 0, data.Length); } ViewBag.Message = "Success!"; return View("Index"); } private void ParseInputFile(byte[] data) { ExcelStorage provider = new ExcelStorage(typeof(OccupationalGroup)); provider.StartRow = 3; provider.StartColumn = 2; provider.FileName = "test.xlsx"; } 

我能否像FileHelpers一样使用这个请求? 我只需要将Excel文件读入数据库。 如果不是,我应该寻找一种不同的方式来处理上传?

所以,我决定改用ExcelDataReader来从Excel中读取数据。 它把stream(在下面的代码中,testing)放到一个我可以手动操作的DataSet中。 我相信它可能不是最干净的方法,但它对我来说是有意义的,并允许我也很容易地使用多个工作表。 以下是我最终使用的常规代码片段:

 //test is a stream here that I get using reflection IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(test); DataSet result = excelReader.AsDataSet(); while(excelReader.Read()) { //process the file } excelReader.Close();