我尝试将多个包含excel文件的记录插入数据库。 Scenerio是,用户从他的硬盘驱动器中选择excel文件,然后代码读取第一行并将其显示为标题列。这些列未订购。因此,用户通过下拉列表匹配右列。
到目前为止,一切都还可以。但匹配后我必须从另一个动作再次读取该文件。但我不是将文件保存到服务器。有没有办法在变量或会话中读取或保存文件?
我的代码与此类似
public JsonResult ExcelUpload(FormCollection formCollection)
{
if (Request != null)
{
HttpPostedFileBase file = Request.Files["ExcelFile"];
}
}
答案 0 :(得分:0)
如果你的意思是“另一个动作”,你的意思是一个不同的HTTP请求,那么如果没有它持续存在,你就不能这样做。
答案 1 :(得分:0)
使用库given here
更好地读取数据表中的文件FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
//1. Reading from a binary Excel file ('97-2003 format; *.xls)
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
//...
//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
//...
//3. DataSet - The result of each spreadsheet will be created in the result.Tables
DataSet result = excelReader.AsDataSet();
//...
//4. DataSet - Create column names from first row
excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();
//5. Data Reader methods
while (excelReader.Read())
{
//excelReader.GetInt32(0);
}
//6. Free resources (IExcelDataReader is IDisposable)
excelReader.Close();
并将DataSet存储到会话中以供进一步处理。