1
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user