我有一个通过我的 MVC Web 应用程序输入的 excel 文件,我必须处理和做一些事情。所以我在控制器上收到我的文件
public class StripExcelDocument
{
public DataSet Convert(HttpPostedFileBase file)
{
return GetDataFromExcel(file.InputStream);
}
private DataSet GetDataFromExcel(Stream target)
{
var excelReader = ExcelReaderFactory.CreateOpenXmlReader(target);
excelReader.IsFirstRowAsColumnNames = true;
return excelReader.AsDataSet();
}
}
我通过我创建的处理器发送它,它只是一个大的条件语句,然后根据它被发送到数据库中的特定表的结果。
public class Processor{
public Result Process
{
if (FirstCondition(string foo, int bar)){
SetResult(foo, bar);
}
if (SecondCondition(string foo, int bar)){
SetResult(foo, bar);
}
if (ThirdCondition(string foo, int bar)){
SetResult(foo, bar);
}
//etc...
显然,当用户想要输入单个记录但在处理大型 excel 文件时,这很有效:
A:服务器超时。B:让用户盯着屏幕一会儿。
有什么更有效的方法来处理批量处理来自 excel 文件的大量数据,其中记录需要是数据库中自己的实体?