This commit is contained in:
liqionghai
2025-08-19 09:32:59 +08:00
parent 892d5d36c6
commit c8cb278e9d
12 changed files with 879 additions and 95 deletions

View File

@@ -3,6 +3,7 @@ using Kingdee.BOS.Core;
using Kingdee.BOS.Core.CommonFilter.ConditionVariableAnalysis;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata.FormElement;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Core.Report.PlugIn;
@@ -118,6 +119,9 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
cellStyle2.BorderLeft = BorderStyle.Thin;
cellStyle2.BorderRight = BorderStyle.Thin;
//垂直居中
cellStyle2.VerticalAlignment = VerticalAlignment.Center;
// 创建单元格样式---------------------------------------
ICellStyle style = workbook.CreateCellStyle();
@@ -218,15 +222,33 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
style2.SetFont(font2);
int n = 14;
string GroupCONTRACTNUMBER = "";
int GroupIndex = 13;
int GroupCount = 0;
int j = 13;
for (var i = 0; i < list.Count; i++)
{
//不导出待核销
if (list[i]["Number"].ToString() == "待核销")
{
continue;
}
string date = string.IsNullOrWhiteSpace(list[i]["DATE"].ToString()) ? "" : list[i]["DATE"].ToString().Split(' ')[0];
string ShipmentsDate = string.IsNullOrWhiteSpace(list[i]["ShipmentsDate"].ToString()) ? "" : list[i]["ShipmentsDate"].ToString().Split(' ')[0];
string PaymentDate = string.IsNullOrWhiteSpace(list[i]["PaymentDate"].ToString()) ? "" : list[i]["PaymentDate"].ToString().Split(' ')[0];
string BillingDate = string.IsNullOrWhiteSpace(list[i]["ZPBillingDate"].ToString()) ? "" : list[i]["ZPBillingDate"].ToString().Split(' ')[0];
string ReturnDate = string.IsNullOrWhiteSpace(list[i]["ReturnDate"].ToString()) ? "" : list[i]["ReturnDate"].ToString().Split(' ')[0];
IRow rowi = sheet.CreateRow(13 + i);
//将合计行放到最下方
IRow rowi = sheet.CreateRow(j + i);
if (list[i]["Number"].ToString() == "合计")
{
rowi = sheet.CreateRow(j + list.Count-2);
j = 12;
}
ICell c1 = rowi.CreateCell(0); c1.SetCellValue(list[i]["Number"].ToString()); c1.CellStyle = cellStyle;
ICell c2 = rowi.CreateCell(1); c2.SetCellValue(""+date+""); c2.CellStyle = cellStyle2;
ICell c3 = rowi.CreateCell(2); c3.SetCellValue(list[i]["CONTRACTNUMBER"].ToString()); c3.CellStyle = cellStyle2;
@@ -327,6 +349,70 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
ICell c22 = rowi.CreateCell(21); c22.SetCellValue(list[i]["IsEnded"].ToString()); c22.CellStyle = cellStyle2;
ICell c23 = rowi.CreateCell(22); c23.SetCellValue(list[i]["Remark"].ToString()); c23.CellStyle = cellStyle2;
n++;
//根据订单号分组合并单元格
if(list[i]["CONTRACTNUMBER"].ToString() != GroupCONTRACTNUMBER || i == list.Count-2)
{
int k = (i == list.Count - 2) ? 0 : 1;
if (GroupCount > 1)
{
// 创建CellRangeAddress对象
CellRangeAddress cellRangeAddress = new CellRangeAddress(GroupIndex, j + i - k, 1, 1);
CellRangeAddress cellRangeAddress2 = new CellRangeAddress(GroupIndex, j + i - k, 2, 2);
CellRangeAddress cellRangeAddress3 = new CellRangeAddress(GroupIndex, j + i - k, 3, 3);
CellRangeAddress cellRangeAddress8 = new CellRangeAddress(GroupIndex, j + i - k, 8, 8);
CellRangeAddress cellRangeAddress9 = new CellRangeAddress(GroupIndex, j + i - k, 9, 9);
CellRangeAddress cellRangeAddress15 = new CellRangeAddress(GroupIndex, j + i - k, 15, 15);
CellRangeAddress cellRangeAddress16 = new CellRangeAddress(GroupIndex, j + i - k, 16, 16);
CellRangeAddress cellRangeAddress17 = new CellRangeAddress(GroupIndex, j + i - k, 17, 17);
CellRangeAddress cellRangeAddress18 = new CellRangeAddress(GroupIndex, j + i - k, 18, 18);
CellRangeAddress cellRangeAddress19 = new CellRangeAddress(GroupIndex, j + i - k, 19, 19);
CellRangeAddress cellRangeAddress20 = new CellRangeAddress(GroupIndex, j + i - k, 20, 20);
CellRangeAddress cellRangeAddress21 = new CellRangeAddress(GroupIndex, j + i - k, 21, 21);
// 检查并移除重叠的合并区域
RemoveOverlappingMergedRegions(sheet, cellRangeAddress);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress2);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress3);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress8);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress9);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress15);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress16);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress17);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress18);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress19);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress20);
RemoveOverlappingMergedRegions(sheet, cellRangeAddress21);
// 合并单元格
sheet.AddMergedRegion(cellRangeAddress);
sheet.AddMergedRegion(cellRangeAddress2);
sheet.AddMergedRegion(cellRangeAddress3);
sheet.AddMergedRegion(cellRangeAddress8);
sheet.AddMergedRegion(cellRangeAddress9);
sheet.AddMergedRegion(cellRangeAddress15);
sheet.AddMergedRegion(cellRangeAddress16);
sheet.AddMergedRegion(cellRangeAddress17);
sheet.AddMergedRegion(cellRangeAddress18);
sheet.AddMergedRegion(cellRangeAddress19);
sheet.AddMergedRegion(cellRangeAddress20);
sheet.AddMergedRegion(cellRangeAddress21);
}
GroupCONTRACTNUMBER = list[i]["CONTRACTNUMBER"].ToString();
GroupIndex = j + i;
GroupCount = 1;
}
else
{
GroupCount++;
}
if(list[i]["Number"].ToString() == "合计")
{
c1.CellStyle = style3;
@@ -540,7 +626,8 @@ namespace Pilot.Report.Exploitation.AccountsReceivable
sheet.AddMergedRegion(cellRangeAddress2);
sheet.AddMergedRegion(cellRangeAddress3);
}
//移除第二个工作表
workbook.RemoveSheetAt(1);
#endregion
#region Excel代码2