读取Excel改同步

parent 4efb4431
......@@ -75,13 +75,13 @@ private PerExcel Import(per_allot allot)
Version = FileHelper.GetExtension(path) == ".xlsx" ? ExcelVersion.xlsx : ExcelVersion.xls,
PerSheet = new List<PerSheet>()
};
_logManageService.WriteMsg("读取文件", $"文件读取中...当前操作需要一点时间,请耐心等待", 1, allot.ID, "ReceiveMessage", true);
using (FileStream fs = new FileStream(path, FileMode.Open))
{
IWorkbook workbook = (excel.Version == ExcelVersion.xlsx)
? (IWorkbook)(new XSSFWorkbook(fs))
: (IWorkbook)(new HSSFWorkbook(fs));
IWorkbook workbook = (excel.Version == ExcelVersion.xlsx) ? new XSSFWorkbook(fs) : new HSSFWorkbook(fs);
bool isnew = false;
var tasks = new List<Task>();
for (int i = 0; i < workbook.NumberOfSheets; i++)
{
var sheet = workbook.GetSheetAt(i);
......@@ -89,30 +89,28 @@ private PerExcel Import(per_allot allot)
if (SheetType.Unidentifiable != sheetType)
_logManageService.WriteMsg("准备读取文件", $"正在准备读取“{sheet.SheetName}”", 1, allot.ID, "ReceiveMessage", true);
//else
//_logManageService.WriteMsg("准备读取文件", $"忽略文件“{sheet.SheetName}”", 1, allot.ID, "ReceiveMessage", true);
//_logManageService.WriteMsg("准备读取文件", $"忽略文件“{sheet.SheetName}”", 1, allot.ID, "ReceiveMessage", true);
try
{
tasks.Add(Task.Factory.StartNew(() =>
// 保留临床科室测算表全部结构,用作展示,不做其他用途
if (sheetType == SheetType.AccountBasic)
{
var st = _perSheetService.SheetAccountBasicSpecial(sheet, isnew);
excel.PerSheet.Add(st);
}
if (SheetType.Unidentifiable != sheetType)
{
// 保留临床科室测算表全部结构,用作展示,不做其他用途
if (sheetType == SheetType.AccountBasic)
{
var st = _perSheetService.SheetAccountBasicSpecial(sheet, isnew);
excel.PerSheet.Add(st);
}
if (SheetType.Unidentifiable != sheetType)
{
var st = _perSheetService.Sheet(sheet, isnew);
excel.PerSheet.Add(st);
}
else
{
if (sheet.SheetName.Contains("开单医院"))
isnew = true;
}
}));
var st = _perSheetService.Sheet(sheet, isnew);
excel.PerSheet.Add(st);
}
else
{
if (sheet.SheetName.Contains("开单医院"))
isnew = true;
}
}
catch (Exception ex)
{
......@@ -121,9 +119,6 @@ private PerExcel Import(per_allot allot)
}
}
_logManageService.WriteMsg("读取文件", $"文件读取中...当前操作需要一点时间,请耐心等待", 1, allot.ID, "ReceiveMessage", true);
Task.WaitAll(tasks.ToArray());
_logManageService.WriteMsg("读取文件", $"EXCEL文件基础数据读取完成!", 1, allot.ID, "ReceiveMessage", true);
return excel;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment