From 1dabadfba44a0bd9600741c549302db7382e2d81 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Fri, 27 Sep 2024 14:45:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Helper/ExcelExportHelper.cs | 47 ++++++++++++------- .../ReadingCalculate/IVUSCalculateService.cs | 2 +- .../ReadingCalculate/OCTCalculateService.cs | 4 +- .../TrialSiteUser/DTO/UserTrialViewModel.cs | 3 +- 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/IRaCIS.Core.Application/Helper/ExcelExportHelper.cs b/IRaCIS.Core.Application/Helper/ExcelExportHelper.cs index 8cc8a9b42..8eb75befc 100644 --- a/IRaCIS.Core.Application/Helper/ExcelExportHelper.cs +++ b/IRaCIS.Core.Application/Helper/ExcelExportHelper.cs @@ -8,7 +8,9 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Hosting; using MiniExcelLibs; using MiniExcelLibs.OpenXml; +using NPOI.HSSF.UserModel; using NPOI.SS.Formula.Functions; +using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.Collections; using System.Globalization; @@ -392,33 +394,44 @@ public static class ExcelExportHelper workbook.RemoveSheetAt(1); } - var memoryStream2 = new MemoryStream(); - workbook.Write(memoryStream2, true); - - memoryStream2.Seek(0, SeekOrigin.Begin); - - templateStream = memoryStream2; + } - // 文件名称 从sheet里面取 - //fileNmae = workbook.GetSheetName(0); #endregion + ISheet sheet = workbook.GetSheetAt(0); // 获取第一个工作表 - var memoryStream = new MemoryStream(); + - var config = new OpenXmlConfiguration() + for (int i = 0; i < sheet.LastRowNum + 1; i++) { - IgnoreTemplateParameterMissing = true, - }; - - await MiniExcel.SaveAsByTemplateAsync(memoryStream, templateStream.ToArray(), inDto.Data, config); - - memoryStream.Seek(0, SeekOrigin.Begin); + IRow row = sheet.GetRow(i); + for (int j = 0; j < sheet.LastRowNum; j++) + { + ICell cell = row.GetCell(j); + foreach (var property in inDto.Data.GetType().GetProperties()) + { + var value = property.GetValue(inDto.Data); + if (cell!=null&&cell.ToString() == "{{" + property.Name + "}}") + { + sheet.GetRow(i).GetCell(j).SetCellValue(value.ToString()); + } + } + } + } - return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") + + var memoryStream2 = new MemoryStream(); + workbook.Write(memoryStream2, true); + + memoryStream2.Seek(0, SeekOrigin.Begin); + + templateStream = memoryStream2; + + + return new FileStreamResult(templateStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{(string.IsNullOrEmpty(inDto.ExportFileName) ? "" : inDto.ExportFileName + "_")}{Path.GetFileNameWithoutExtension(fileName)}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx" }; diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs index 2ef2c6859..b91574def 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs @@ -582,7 +582,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var values = new TemplateData() { - SubjectID = "'" + (taskinfo.BlindSubjectCode.IsNullOrEmpty() ? taskinfo.Subject.Code : taskinfo.BlindSubjectCode), + SubjectID = (taskinfo.BlindSubjectCode.IsNullOrEmpty() ? taskinfo.Subject.Code : taskinfo.BlindSubjectCode), TaskBlindName = taskinfo.TaskBlindName, }; return await _visitTaskHelpeService.ExportTemplateAsync(new IRaCIS.Application.Contracts.ExportTemplateAsyncDto() diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs index f031c90df..bda78b098 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs @@ -449,7 +449,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Include(x => x.Subject).FirstNotNullAsync(); var values = new TemplateData() { - SubjectID = "'" + (taskinfo.BlindSubjectCode.IsNullOrEmpty() ? taskinfo.Subject.Code : taskinfo.BlindSubjectCode), + SubjectID = (taskinfo.BlindSubjectCode.IsNullOrEmpty() ? taskinfo.Subject.Code : taskinfo.BlindSubjectCode), TaskBlindName = taskinfo.TaskBlindName, }; return await _visitTaskHelpeService.ExportTemplateAsync(new IRaCIS.Application.Contracts.ExportTemplateAsyncDto() @@ -626,7 +626,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Include(x => x.Subject).FirstNotNullAsync(); var values = new TemplateData() { - SubjectID = "'" + (taskinfo.BlindSubjectCode.IsNullOrEmpty() ? taskinfo.Subject.Code : taskinfo.BlindSubjectCode), + SubjectID = (taskinfo.BlindSubjectCode.IsNullOrEmpty() ? taskinfo.Subject.Code : taskinfo.BlindSubjectCode), TaskBlindName = taskinfo.TaskBlindName, }; return await _visitTaskHelpeService.ExportTemplateAsync(new IRaCIS.Application.Contracts.ExportTemplateAsyncDto() diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs index 7fcd028d9..7fce7be00 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs @@ -1,5 +1,6 @@ using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Helper; +using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Share; using Microsoft.AspNetCore.Hosting; using MiniExcelLibs.Attributes; @@ -146,7 +147,7 @@ namespace IRaCIS.Application.Contracts /// /// 数据 /// - public object Data { get; set; } + public object Data { get; set; } } public class ExportTemplateServiceDto : ExportTemplateAsyncDto