更新成果报表导出功能
This commit is contained in:
parent
2a2c0fe2d7
commit
1910f15564
272
src/sql.ts
272
src/sql.ts
@ -728,6 +728,7 @@ async function generateTemplate(data) {
|
||||
data.contracts[4].reserve = null;
|
||||
// data.contracts[5].addtional = null;
|
||||
// data.contracts[5].reserve = null;
|
||||
console.log(data)
|
||||
try {
|
||||
// 获取模板
|
||||
let templateExcel = 'template20260226001test010';
|
||||
@ -740,9 +741,6 @@ async function generateTemplate(data) {
|
||||
let fm_sheet = workbook.getWorksheet('封面');
|
||||
let ml_sheet = workbook.getWorksheet('目录');
|
||||
let yz01_sheet = workbook.getWorksheet('预总01表');
|
||||
let f01_sheet = workbook.getWorksheet('辅01表');
|
||||
let f02_sheet = workbook.getWorksheet('辅02表');
|
||||
let f03_sheet = workbook.getWorksheet('辅03表');
|
||||
yz01_sheet.headerFooter.oddHeader = yz01_sheet.headerFooter.oddHeader.replace(/×××/g, data.name);
|
||||
|
||||
// 更新封面
|
||||
@ -786,61 +784,26 @@ async function generateTemplate(data) {
|
||||
}
|
||||
}
|
||||
|
||||
// 更新辅01表的列数
|
||||
let f01Mod = (data.contracts.length) % 3;
|
||||
let f01Num = (data.contracts.length - f01Mod) / 3;
|
||||
switch (f01Mod) {
|
||||
case 0:
|
||||
f01_sheet.spliceColumns(11, 14);
|
||||
break;
|
||||
case 1:
|
||||
f01_sheet.spliceColumns(11, 8);
|
||||
break;
|
||||
case 2:
|
||||
f01_sheet.spliceColumns(19, 6);
|
||||
break;
|
||||
}
|
||||
if (f01Num == 0) {
|
||||
f01_sheet.spliceColumns(1, 10);
|
||||
} else {
|
||||
if (f01Num > 1) {
|
||||
for (let i = 0; i < f01Num - 1; i++) {
|
||||
insertAndCopyColumn(10 * (i + 1) + 1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], f01_sheet);
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < f01Num; i++) {
|
||||
f01_sheet.mergeCells(1, i * 10 + 1, 2, i * 10 + 1);
|
||||
f01_sheet.mergeCells(1, i * 10 + 2, 2, i * 10 + 2);
|
||||
f01_sheet.mergeCells(1, i * 10 + 3, 2, i * 10 + 3);
|
||||
f01_sheet.mergeCells(1, i * 10 + 10, 2, i * 10 + 10);
|
||||
f01_sheet.mergeCells(1, i * 10 + 4, 1, i * 10 + 5);
|
||||
f01_sheet.getRow(1).getCell(i * 10 + 4).value = data.contracts[i * 3].name;
|
||||
f01_sheet.mergeCells(1, i * 10 + 6, 1, i * 10 + 7);
|
||||
f01_sheet.getRow(1).getCell(i * 10 + 6).value = data.contracts[i * 3 + 1].name;
|
||||
f01_sheet.mergeCells(1, i * 10 + 8, 1, i * 10 + 9);
|
||||
f01_sheet.getRow(1).getCell(i * 10 + 8).value = data.contracts[i * 3 + 2].name;
|
||||
}
|
||||
}
|
||||
if (f01Mod > 0) {
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 1, 2, f01Num * 10 + 1);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 2, 2, f01Num * 10 + 2);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 3, 2, f01Num * 10 + 3);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 2 * f01Mod + 4, 2, f01Num * 10 + 2 * f01Mod + 4);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 4, 1, f01Num * 10 + 5);
|
||||
f01_sheet.getRow(1).getCell(f01Num * 10 + 4).value = data.contracts[f01Num * 3].name;
|
||||
if (f01Mod == 2) {
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 6, 1, f01Num * 10 + 7);
|
||||
f01_sheet.getRow(1).getCell(f01Num * 10 + 6).value = data.contracts[f01Num * 3 + 1].name;
|
||||
}
|
||||
}
|
||||
|
||||
// 按合同段更新目录及相关表
|
||||
let ml_slotRow = 14;
|
||||
let ml_number = 1;
|
||||
let allServices = [];
|
||||
let allAddtional = {};
|
||||
let allReserve = {};
|
||||
let allMajors = {};
|
||||
data.scale?.forEach(sci => {
|
||||
allMajors[sci.major] = { [data.contracts.length]: sci };
|
||||
});
|
||||
data.contracts.forEach((ci, index) => {
|
||||
// 记录allMajors
|
||||
ci.scale?.forEach(sci => {
|
||||
if (allMajors[sci.major]) {
|
||||
allMajors[sci.major][index] = sci;
|
||||
} else {
|
||||
allMajors[sci.major] = { [index]: sci };
|
||||
}
|
||||
});
|
||||
|
||||
ci.method1 = [];
|
||||
ci.method2 = [];
|
||||
ci.method3 = [];
|
||||
@ -934,6 +897,7 @@ async function generateTemplate(data) {
|
||||
ml_sourceRows.push(ml_sheet.getRow(13));
|
||||
sheet_5 = copyWorksheet(workbook, '预i-5表', `预${index + 1}-5表`);
|
||||
sheet_5.headerFooter.oddHeader = sheet_5.headerFooter.oddHeader.replace(/×××/g, ci.name).replace(/预 i-5 表/g, `预 ${index + 1}-5 表`).replace(/第i合同/g, ci.name);
|
||||
sheet_5.getRow(3).getCell(3).value = '/';
|
||||
sheet_5.getRow(3).getCell(4).value = '/';
|
||||
sheet_5.getRow(3).getCell(5).value = '/';
|
||||
sheet_5.getRow(3).getCell(6).value = numberFormatter((ci.method5.addtional?.reduce((a, b) => a + b.m5.fee, 0) || 0) + (ci.method5.reserve?.fee || 0), 2);
|
||||
@ -1105,7 +1069,7 @@ async function generateTemplate(data) {
|
||||
});
|
||||
let det1 = m1PI.map(m => m.major);
|
||||
let det2 = m2PI.map(m => m.major);
|
||||
let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => {
|
||||
let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => majorList[a].order - majorList[b].order).map(m => {
|
||||
let d1index = det1.indexOf(m);
|
||||
let d2index = det2.indexOf(m);
|
||||
return {
|
||||
@ -1127,8 +1091,8 @@ async function generateTemplate(data) {
|
||||
targetRow.getCell(7).value = numberFormatter(m.mth1.proportion, 2);
|
||||
targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee, 2);
|
||||
targetRow.getCell(9).value = numberFormatter(m.mth1.fee, 2);
|
||||
targetRow.getCell(10).value = '';
|
||||
targetRow.getCell(11).value = '';
|
||||
targetRow.getCell(10).value = '/';
|
||||
targetRow.getCell(11).value = '/';
|
||||
cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => {
|
||||
targetRow.getCell(1).value = num_2_1++;
|
||||
targetRow.getCell(2).value = serviceX.code + '-' + pi + '-' + (mindex + 1);
|
||||
@ -1145,8 +1109,8 @@ async function generateTemplate(data) {
|
||||
targetRow.getCell(5).value = numberFormatter(m.mth2.majorCoe, 3);
|
||||
targetRow.getCell(6).value = numberFormatter(m.mth2.processCoe, 3);
|
||||
targetRow.getCell(7).value = numberFormatter(m.mth2.proportion, 2);
|
||||
targetRow.getCell(8).value = '';
|
||||
targetRow.getCell(9).value = '';
|
||||
targetRow.getCell(8).value = '/';
|
||||
targetRow.getCell(9).value = '/';
|
||||
targetRow.getCell(10).value = numberFormatter(m.mth2.basicFee, 2);
|
||||
targetRow.getCell(11).value = numberFormatter(m.mth2.fee, 2);
|
||||
cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => {
|
||||
@ -1167,7 +1131,7 @@ async function generateTemplate(data) {
|
||||
} else {
|
||||
let det1 = sobj.method1 ? sobj.method1.det.map(m => m.major) : [];
|
||||
let det2 = sobj.method2 ? sobj.method2.det.map(m => m.major) : [];
|
||||
let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => {
|
||||
let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => majorList[a].order - majorList[b].order).map(m => {
|
||||
let d1index = det1.indexOf(m);
|
||||
let d2index = det2.indexOf(m);
|
||||
return {
|
||||
@ -1189,8 +1153,8 @@ async function generateTemplate(data) {
|
||||
targetRow.getCell(7).value = numberFormatter(m.mth1.proportion, 2);
|
||||
targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee, 2);
|
||||
targetRow.getCell(9).value = numberFormatter(m.mth1.fee, 2);
|
||||
targetRow.getCell(10).value = '';
|
||||
targetRow.getCell(11).value = '';
|
||||
targetRow.getCell(10).value = '/';
|
||||
targetRow.getCell(11).value = '/';
|
||||
cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => {
|
||||
targetRow.getCell(1).value = num_2_1++;
|
||||
targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1);
|
||||
@ -1207,8 +1171,8 @@ async function generateTemplate(data) {
|
||||
targetRow.getCell(5).value = numberFormatter(m.mth2.majorCoe, 3);
|
||||
targetRow.getCell(6).value = numberFormatter(m.mth2.processCoe, 3);
|
||||
targetRow.getCell(7).value = numberFormatter(m.mth2.proportion, 2);
|
||||
targetRow.getCell(8).value = '';
|
||||
targetRow.getCell(9).value = '';
|
||||
targetRow.getCell(8).value = '/';
|
||||
targetRow.getCell(9).value = '/';
|
||||
targetRow.getCell(10).value = numberFormatter(m.mth2.basicFee, 2);
|
||||
targetRow.getCell(11).value = numberFormatter(m.mth2.fee, 2);
|
||||
cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => {
|
||||
@ -1295,7 +1259,7 @@ async function generateTemplate(data) {
|
||||
cusInsertRowFunc(ci.services.length + 3 + endRows, [sheet_1.getRow(3)], sheet_1, (targetRow) => {
|
||||
targetRow.getCell(1).value = ci.services.length + endRows;
|
||||
targetRow.getCell(2).value = '';
|
||||
targetRow.getCell(3).value = '小计';
|
||||
targetRow.getCell(3).value = '基本、可选工作小计';
|
||||
targetRow.getCell(4).value = numberFormatter(m1Sum, 2);
|
||||
targetRow.getCell(5).value = numberFormatter(m2Sum, 2);
|
||||
targetRow.getCell(6).value = numberFormatter(m3Sum, 2);
|
||||
@ -1312,7 +1276,7 @@ async function generateTemplate(data) {
|
||||
targetRow.getCell(5).value = '';
|
||||
targetRow.getCell(6).value = '';
|
||||
targetRow.getCell(7).value = '';
|
||||
targetRow.getCell(8).value = numberFormatter(ci.addtional.fee, 2);
|
||||
targetRow.getCell(8).value = '';
|
||||
});
|
||||
ci.addtional.det.forEach((addobj, addindex) => {
|
||||
endRows++;
|
||||
@ -1390,6 +1354,17 @@ async function generateTemplate(data) {
|
||||
}
|
||||
});
|
||||
});
|
||||
endRows++;
|
||||
cusInsertRowFunc(ci.services.length + 3 + endRows, [sheet_1.getRow(3)], sheet_1, (targetRow) => {
|
||||
targetRow.getCell(1).value = ci.services.length + endRows;
|
||||
targetRow.getCell(2).value = '';
|
||||
targetRow.getCell(3).value = '附加工作小计';
|
||||
targetRow.getCell(4).value = '';
|
||||
targetRow.getCell(5).value = '';
|
||||
targetRow.getCell(6).value = '';
|
||||
targetRow.getCell(7).value = '';
|
||||
targetRow.getCell(8).value = numberFormatter(ci.addtional.fee, 2);
|
||||
});
|
||||
}
|
||||
if (ci.reserve) {
|
||||
endRows++;
|
||||
@ -1520,12 +1495,12 @@ async function generateTemplate(data) {
|
||||
if (sheet_1.getRow(ci.services.length + 3 + i).getCell(4).style.alignment) {
|
||||
sheet_1.getRow(ci.services.length + 3 + i).getCell(4).style.alignment.horizontal = 'center';
|
||||
sheet_1.getRow(ci.services.length + 3 + i).getCell(4).style.alignment.wrapText = true;
|
||||
if (i != 1 && i != endRows) sheet_1.getRow(ci.services.length + 3 + i).getCell(9).style.font.size = 22;
|
||||
if (i != 1 && i != endRows && sheet_1.getRow(ci.services.length + 3 + i).getCell(2).value) sheet_1.getRow(ci.services.length + 3 + i).getCell(9).style.font.size = 22;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allServices.sort((a, b) => a.id - b.id);
|
||||
allServices.sort((a, b) => serviceList[a.id].order - serviceList[b.id].order);
|
||||
allServices.forEach((s, sindex) => {
|
||||
const serviceX = serviceList[s.id];
|
||||
cusInsertRowFunc(3 + sindex, [yz01_sheet.getRow(2)], yz01_sheet, (targetRow) => {
|
||||
@ -1750,10 +1725,171 @@ async function generateTemplate(data) {
|
||||
workbook.removeWorksheet('预i-4表');
|
||||
workbook.removeWorksheet('预i-4-1表');
|
||||
workbook.removeWorksheet('预i-5表');
|
||||
f01_sheet.orderNo = ml_number + 2 + 11;
|
||||
f02_sheet.orderNo = ml_number + 3 + 11;
|
||||
f03_sheet.orderNo = ml_number + 4 + 11;
|
||||
|
||||
// 编辑辅01/02/03表内容
|
||||
// 辅01表
|
||||
if (Object.keys(allMajors).length) {
|
||||
let f01_sheet = workbook.getWorksheet('辅01表');
|
||||
let f01Mod = (data.contracts.length + 1) % 3;
|
||||
let f01Num = (data.contracts.length + 1 - f01Mod) / 3;
|
||||
switch (f01Mod) {
|
||||
case 0:
|
||||
f01_sheet.spliceColumns(11, 14);
|
||||
break;
|
||||
case 1:
|
||||
f01_sheet.spliceColumns(11, 8);
|
||||
break;
|
||||
case 2:
|
||||
f01_sheet.spliceColumns(19, 6);
|
||||
break;
|
||||
}
|
||||
if (f01Num == 0) {
|
||||
f01_sheet.spliceColumns(1, 10);
|
||||
} else {
|
||||
if (f01Num > 1) {
|
||||
for (let i = 0; i < f01Num - 1; i++) {
|
||||
insertAndCopyColumn(10 * (i + 1) + 1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], f01_sheet);
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < f01Num; i++) {
|
||||
f01_sheet.mergeCells(1, i * 10 + 1, 2, i * 10 + 1);
|
||||
f01_sheet.mergeCells(1, i * 10 + 2, 2, i * 10 + 2);
|
||||
f01_sheet.mergeCells(1, i * 10 + 3, 2, i * 10 + 3);
|
||||
f01_sheet.mergeCells(1, i * 10 + 10, 2, i * 10 + 10);
|
||||
f01_sheet.mergeCells(1, i * 10 + 4, 1, i * 10 + 5);
|
||||
f01_sheet.getRow(1).getCell(i * 10 + 4).value = data.contracts[i * 3].name;
|
||||
f01_sheet.mergeCells(1, i * 10 + 6, 1, i * 10 + 7);
|
||||
f01_sheet.getRow(1).getCell(i * 10 + 6).value = data.contracts[i * 3 + 1].name;
|
||||
f01_sheet.mergeCells(1, i * 10 + 8, 1, i * 10 + 9);
|
||||
if (f01Mod == 0 && i == f01Num - 1) {
|
||||
f01_sheet.getRow(1).getCell(i * 10 + 8).value = '项目小计';
|
||||
} else {
|
||||
f01_sheet.getRow(1).getCell(i * 10 + 8).value = data.contracts[i * 3 + 2].name;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (f01Mod > 0) {
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 1, 2, f01Num * 10 + 1);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 2, 2, f01Num * 10 + 2);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 3, 2, f01Num * 10 + 3);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 2 * f01Mod + 4, 2, f01Num * 10 + 2 * f01Mod + 4);
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 4, 1, f01Num * 10 + 5);
|
||||
f01_sheet.getRow(1).getCell(f01Num * 10 + 4).value = f01Mod == 1 ? '项目小计' : data.contracts[f01Num * 3].name;
|
||||
if (f01Mod == 2) {
|
||||
f01_sheet.mergeCells(1, f01Num * 10 + 6, 1, f01Num * 10 + 7);
|
||||
f01_sheet.getRow(1).getCell(f01Num * 10 + 6).value = '项目小计';
|
||||
}
|
||||
}
|
||||
let num_f01 = 1;
|
||||
Object.keys(allMajors).sort((a, b) => majorList[a].order - majorList[b].order).forEach(majorid => {
|
||||
let scaleX = allMajors[majorid];
|
||||
let code;
|
||||
let name;
|
||||
let hasCost;
|
||||
let hasArea;
|
||||
if (majorid == -1) {
|
||||
code = '';
|
||||
name = '总投资';
|
||||
hasCost = true;
|
||||
hasArea = false;
|
||||
} else {
|
||||
code = majorList[majorid].code;
|
||||
name = majorList[majorid].name;
|
||||
hasCost = majorList[majorid].hasCost;
|
||||
hasArea = majorList[majorid].hasArea;
|
||||
}
|
||||
cusInsertRowFunc(3 + num_f01, [f01_sheet.getRow(3)], f01_sheet, (targetRow) => {
|
||||
let rowNum = num_f01++;
|
||||
for (let i = 0; i < f01Num; i++) {
|
||||
targetRow.getCell(i * 10 + 1).value = rowNum;
|
||||
targetRow.getCell(i * 10 + 2).value = code;
|
||||
targetRow.getCell(i * 10 + 3).value = name;
|
||||
if (hasCost) {
|
||||
targetRow.getCell(i * 10 + 4).value = numberFormatter(scaleX[i * 3]?.cost, 2);
|
||||
targetRow.getCell(i * 10 + 6).value = numberFormatter(scaleX[i * 3 + 1]?.cost, 2);
|
||||
targetRow.getCell(i * 10 + 8).value = numberFormatter(scaleX[i * 3 + 2]?.cost, 2);
|
||||
} else {
|
||||
targetRow.getCell(i * 10 + 4).value = '/';
|
||||
targetRow.getCell(i * 10 + 6).value = '/';
|
||||
targetRow.getCell(i * 10 + 8).value = '/';
|
||||
}
|
||||
if (hasArea) {
|
||||
targetRow.getCell(i * 10 + 5).value = numberFormatter(scaleX[i * 3]?.area, 3);
|
||||
targetRow.getCell(i * 10 + 7).value = numberFormatter(scaleX[i * 3 + 1]?.area, 3);
|
||||
targetRow.getCell(i * 10 + 9).value = numberFormatter(scaleX[i * 3 + 2]?.area, 3);
|
||||
} else {
|
||||
targetRow.getCell(i * 10 + 5).value = '/';
|
||||
targetRow.getCell(i * 10 + 7).value = '/';
|
||||
targetRow.getCell(i * 10 + 9).value = '/';
|
||||
}
|
||||
}
|
||||
if (f01Mod > 0) {
|
||||
targetRow.getCell(f01Num * 10 + 1).value = rowNum;
|
||||
targetRow.getCell(f01Num * 10 + 2).value = code;
|
||||
targetRow.getCell(f01Num * 10 + 3).value = name;
|
||||
for (let i = 0; i < f01Mod; i++) {
|
||||
if (hasCost) {
|
||||
targetRow.getCell(f01Num * 10 + 4 + i * 2).value = numberFormatter(scaleX[f01Num * 3 + i]?.cost, 2);
|
||||
} else {
|
||||
targetRow.getCell(f01Num * 10 + 4 + i * 2).value = '/';
|
||||
}
|
||||
if (hasArea) {
|
||||
targetRow.getCell(f01Num * 10 + 5 + i * 2).value = numberFormatter(scaleX[f01Num * 3 + i]?.area, 3);
|
||||
} else {
|
||||
targetRow.getCell(f01Num * 10 + 5 + i * 2).value = '/';
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
f01_sheet.spliceRows(3, 1);
|
||||
// f01_sheet.getRow(2).height = 27;
|
||||
f01_sheet.orderNo = ml_number + 2 + 11;
|
||||
} else {
|
||||
workbook.removeWorksheet('辅01表');
|
||||
}
|
||||
|
||||
// 辅02/03表
|
||||
if (data.serviceCoes?.length) {
|
||||
let f02_sheet = workbook.getWorksheet('辅02表');
|
||||
let num_f02 = 1;
|
||||
data.serviceCoes.sort((a, b) => serviceList[a.serviceid].order - serviceList[b.serviceid].order).forEach(scoei => {
|
||||
let serviceCoeX = serviceList[scoei.serviceid];
|
||||
cusInsertRowFunc(2 + num_f02, [f02_sheet.getRow(2)], f02_sheet, (targetRow) => {
|
||||
targetRow.getCell(1).value = num_f02++;
|
||||
targetRow.getCell(2).value = serviceCoeX.code;
|
||||
targetRow.getCell(3).value = serviceCoeX.name;
|
||||
targetRow.getCell(4).value = numberFormatter(serviceCoeX.defCoe, 3);
|
||||
targetRow.getCell(5).value = numberFormatter(scoei.coe, 3);
|
||||
targetRow.getCell(6).value = scoei.remark;
|
||||
});
|
||||
});
|
||||
f02_sheet.spliceRows(2, 1);
|
||||
f02_sheet.orderNo = ml_number + 3 + 11;
|
||||
} else {
|
||||
workbook.removeWorksheet('辅02表');
|
||||
}
|
||||
if (data.majorCoes?.length) {
|
||||
let f03_sheet = workbook.getWorksheet('辅03表');
|
||||
let num_f03 = 1;
|
||||
data.majorCoes.sort((a, b) => majorList[a.majorid].order - majorList[b.majorid].order).forEach(mcoei => {
|
||||
let majorCoeX = majorList[mcoei.majorid];
|
||||
cusInsertRowFunc(2 + num_f03, [f03_sheet.getRow(2)], f03_sheet, (targetRow) => {
|
||||
targetRow.getCell(1).value = num_f03++;
|
||||
targetRow.getCell(2).value = majorCoeX.code;
|
||||
targetRow.getCell(3).value = majorCoeX.name;
|
||||
targetRow.getCell(4).value = numberFormatter(majorCoeX.defCoe, 3);
|
||||
targetRow.getCell(5).value = numberFormatter(mcoei.coe, 3);
|
||||
targetRow.getCell(6).value = mcoei.remark;
|
||||
});
|
||||
});
|
||||
f03_sheet.spliceRows(2, 1);
|
||||
f03_sheet.orderNo = ml_number + 4 + 11;
|
||||
} else {
|
||||
workbook.removeWorksheet('辅03表');
|
||||
}
|
||||
|
||||
// 统一设置页眉页脚字体
|
||||
workbook._worksheets.forEach(sheet => {
|
||||
if (sheet) {
|
||||
if (sheet.headerFooter.oddHeader) sheet.headerFooter.oddHeader = sheet.headerFooter.oddHeader.replace(/&([CLR])&/g, '&$1&"宋体"&');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user