From aa8fe6b2b710c60bada96b19708ba62c309256a3 Mon Sep 17 00:00:00 2001 From: liyh Date: Mon, 29 Jul 2024 18:05:22 +0800 Subject: [PATCH] 1212 --- .../Excel/DataOut/PunchlistFrom导出模板.xlsx | Bin 21652 -> 21737 bytes .../FineUIPro.Web/Transfer/PunchlistFrom.aspx | 2 +- .../Transfer/PunchlistFrom.aspx.cs | 99 +++++++++++++++++- 3 files changed, 97 insertions(+), 4 deletions(-) diff --git a/SGGL/FineUIPro.Web/File/Excel/DataOut/PunchlistFrom导出模板.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataOut/PunchlistFrom导出模板.xlsx index cf35ca4477f089d669704725208a1e4e1b1023af..bab50255379e6fccdb9e24f3354f25bbb6a8218e 100644 GIT binary patch delta 3752 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 Q0lTpQwt`gYmj9Oh3t#H;L;wH) delta 3657 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 diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx index e07551b6..95720d13 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx @@ -74,7 +74,7 @@ diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs index 00a8f4b6..afbd3ffb 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs @@ -1,8 +1,10 @@ using BLL; using BLL.Common; using BLL.CQMS.Comprehensive; +using FineUIPro.Web.AttachFile; using NPOI.SS.Formula.Functions; using NPOI.SS.UserModel; +using NPOI.XSSF.Streaming.Values; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; @@ -11,6 +13,7 @@ using System.Data.SqlClient; using System.Drawing.Imaging; using System.IO; using System.Linq; +using System.Web.Services.Description; using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; namespace FineUIPro.Web.Transfer @@ -387,7 +390,7 @@ namespace FineUIPro.Web.Transfer ShowNotify("没有要导出的数据!!!", MessageBoxIcon.Warning); return; } - newUrl = uploadfilepath.Replace("导出模板","导出数据").Replace(".xlsx",DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"); + newUrl = uploadfilepath.Replace("导出模板", "导出数据").Replace(".xlsx", DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"); File.Copy(uploadfilepath, newUrl); NPOI.SS.UserModel.IWorkbook workbook; using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) @@ -395,64 +398,154 @@ namespace FineUIPro.Web.Transfer workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); } + NPOI.SS.UserModel.ICellStyle cellStyleC = workbook.CreateCellStyle(); + cellStyleC.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyleC.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyleC.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyleC.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyleC.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyleC.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyleC.WrapText = true; + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + var pcList = Funs.DB.AttachFile.Where(p => p.MenuId == BLL.Const.PunchlistFromMenuId && p.AttachUrl != null && p.AttachUrl != "").ToList(); + int i = 2; foreach (DataRow tbRow in tb.Rows) { + string Id = tbRow["Id"].ToString(); + NPOI.SS.UserModel.IRow row = sheet.CreateRow(i); NPOI.SS.UserModel.ICell cell; cell = row.CreateCell(0); - cell.SetCellValue(tbRow["Num_NO"]==null?"": tbRow["Num_NO"].ToString()); + cell.CellStyle = cellStyleC; + cell.SetCellValue(tbRow["Num_NO"] == null ? "" : tbRow["Num_NO"].ToString()); cell = row.CreateCell(1); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["System_No"] == null ? "" : tbRow["System_No"].ToString()); cell = row.CreateCell(2); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Sub_Sys_No"] == null ? "" : tbRow["Sub_Sys_No"].ToString()); cell = row.CreateCell(3); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["DESCRIPTION"] == null ? "" : tbRow["DESCRIPTION"].ToString()); + //Photoes附件 + var photoesUrl = pcList.FirstOrDefault(p => p.ToKeyId == $"{Id}_A"); + if (photoesUrl != null && !string.IsNullOrWhiteSpace(photoesUrl.AttachUrl)) + { + string[] arrUrl = photoesUrl.AttachUrl.Split(','); + sheet.SetColumnWidth(4, 30 * 256); + row.Height = (short)(90 * 20 * arrUrl.Length); + foreach (string url in arrUrl) + { + var oneUrl = Server.MapPath("~/") + url; + byte[] bytes = System.IO.File.ReadAllBytes(oneUrl); + int pictureIdx = workbook.AddPicture(bytes, PictureType.JPEG); + + // 第三步:创建画部 + IDrawing patriarch = sheet.CreateDrawingPatriarch(); + // 第四步:设置锚点 + int rowline = 1; // y方向 + // 参数说明:(在起始单元格的X坐标0-1023,Y的坐标0-255,在终止单元格的X坐标0-1023,Y的坐标0-255,起始单元格列数,行数,终止单元格列数,行数) + IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, 4, i, 5, i + 1); + // 第五步:把图片插到相应的位置+1 + IPicture pict = patriarch.CreatePicture(anchor, pictureIdx); + //就取第一张,如果后期想取全部 那把下面这个跳出语句去掉 + break; + } + } + cell = row.CreateCell(5); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Cat"] == null ? "" : tbRow["Cat"].ToString()); cell = row.CreateCell(6); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Raised_By"] == null ? "" : tbRow["Raised_By"].ToString()); cell = row.CreateCell(7); - cell.SetCellValue(tbRow["Date_Raised"] == DBNull.Value ? "" :Convert.ToDateTime(tbRow["Date_Raised"]).ToString("yyyy-MM-dd")); + cell.CellStyle = cellStyleC; + cell.SetCellValue(tbRow["Date_Raised"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Date_Raised"]).ToString("yyyy-MM-dd")); cell = row.CreateCell(8); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Disc"] == null ? "" : tbRow["Disc"].ToString()); cell = row.CreateCell(9); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["IsEngStr"] == null ? "" : tbRow["IsEngStr"].ToString()); cell = row.CreateCell(10); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["IsMatIStr"] == null ? "" : tbRow["IsMatIStr"].ToString()); cell = row.CreateCell(11); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Punch_Type"] == null ? "" : tbRow["Punch_Type"].ToString()); cell = row.CreateCell(12); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Required_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Required_Date"]).ToString("yyyy-MM-dd")); cell = row.CreateCell(13); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Action_By"] == null ? "" : tbRow["Action_By"].ToString()); cell = row.CreateCell(14); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["PIC"] == null ? "" : tbRow["PIC"].ToString()); cell = row.CreateCell(15); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["PIC_WUH"] == null ? "" : tbRow["PIC_WUH"].ToString()); cell = row.CreateCell(16); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Correction_Action"] == null ? "" : tbRow["Correction_Action"].ToString()); + //CorrectedPhotos附件 + var correctedPhotosUrl = pcList.FirstOrDefault(p => p.ToKeyId == $"{Id}_B"); + if (correctedPhotosUrl != null && !string.IsNullOrWhiteSpace(correctedPhotosUrl.AttachUrl)) + { + string[] arrUrl = correctedPhotosUrl.AttachUrl.Split(','); + sheet.SetColumnWidth(17, 30 * 256); + row.Height = (short)(90 * 20); + foreach (string url in arrUrl) + { + var oneUrl = Server.MapPath("~/") + url; + byte[] bytes = System.IO.File.ReadAllBytes(oneUrl); + int pictureIdx = workbook.AddPicture(bytes, PictureType.JPEG); + + // 第三步:创建画部 + IDrawing patriarch = sheet.CreateDrawingPatriarch(); + // 第四步:设置锚点 + int rowline = 1; // y方向 + // 参数说明:(在起始单元格的X坐标0-1023,Y的坐标0-255,在终止单元格的X坐标0-1023,Y的坐标0-255,起始单元格列数,行数,终止单元格列数,行数) + IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, 17, i, 18, i + 1); + // 第五步:把图片插到相应的位置+1 + IPicture pict = patriarch.CreatePicture(anchor, pictureIdx); + //就取第一张,如果后期想取全部 那把下面这个跳出语句去掉 + break; + } + } + cell = row.CreateCell(18); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Actual_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Actual_Date"]).ToString("yyyy-MM-dd")); cell = row.CreateCell(19); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Cleared_By"] == null ? "" : tbRow["Cleared_By"].ToString()); cell = row.CreateCell(20); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Cleared_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Cleared_Date"]).ToString("yyyy-MM-dd")); cell = row.CreateCell(21); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Confirmed_By"] == null ? "" : tbRow["Confirmed_By"].ToString()); cell = row.CreateCell(22); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Confirmed_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Confirmed_Date"]).ToString("yyyy-MM-dd")); cell = row.CreateCell(23); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Verified_By"] == null ? "" : tbRow["Verified_By"].ToString()); cell = row.CreateCell(24); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Verified_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Verified_Date"]).ToString("yyyy-MM-dd")); cell = row.CreateCell(25); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Status"] == null ? "" : tbRow["Status"].ToString()); cell = row.CreateCell(26); + cell.CellStyle = cellStyleC; cell.SetCellValue(tbRow["Remark"] == null ? "" : tbRow["Remark"].ToString());