From 9b689aff3d928de1850652e38438206321b098ce Mon Sep 17 00:00:00 2001 From: ylj20011123 Date: Fri, 19 Sep 2025 09:33:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=88=E5=BA=A6=E8=90=A5=E6=94=B6=E5=88=86?= =?UTF-8?q?=E6=9E=90=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessAnalysis/monthlyRevenueAnalysis/index.tsx | 3 +-- src/utils/exportExcelFun.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pages/reports/BusinessAnalysis/monthlyRevenueAnalysis/index.tsx b/src/pages/reports/BusinessAnalysis/monthlyRevenueAnalysis/index.tsx index 5dc5fa0..d5302fa 100644 --- a/src/pages/reports/BusinessAnalysis/monthlyRevenueAnalysis/index.tsx +++ b/src/pages/reports/BusinessAnalysis/monthlyRevenueAnalysis/index.tsx @@ -310,7 +310,6 @@ const monthlyRevenueAnalysis: React.FC<{ currentUser: CurrentUser }> = (props) = // 处理百分号 item.RevenueAmount.increaseRate = item.RevenueAmount?.increaseRate ? item.RevenueAmount?.increaseRate + '%' : "" item.ACCRevenueAmount.increaseRate = item.ACCRevenueAmount?.increaseRate ? item.ACCRevenueAmount?.increaseRate + '%' : "" - // 处理数字的千分号 item.RevenueAmount.curData = item.RevenueAmount.curData.toLocaleString() || 0 item.RevenueAmount.compareData = item.RevenueAmount.compareData.toLocaleString() || 0 @@ -323,7 +322,6 @@ const monthlyRevenueAnalysis: React.FC<{ currentUser: CurrentUser }> = (props) = // 处理百分号 subItem.RevenueAmount.increaseRate = subItem.RevenueAmount?.increaseRate ? subItem.RevenueAmount?.increaseRate + '%' : "" subItem.ACCRevenueAmount.increaseRate = subItem.ACCRevenueAmount?.increaseRate ? subItem.ACCRevenueAmount?.increaseRate + '%' : "" - // 处理数字的千分号 subItem.RevenueAmount.curData = subItem.RevenueAmount.curData.toLocaleString() || 0 subItem.RevenueAmount.compareData = subItem.RevenueAmount.compareData.toLocaleString() || 0 @@ -331,6 +329,7 @@ const monthlyRevenueAnalysis: React.FC<{ currentUser: CurrentUser }> = (props) = subItem.ACCRevenueAmount.curData = subItem.ACCRevenueAmount.curData.toLocaleString() || 0 subItem.ACCRevenueAmount.compareData = subItem.ACCRevenueAmount.compareData.toLocaleString() || 0 subItem.ACCRevenueAmount.increaseData = subItem.ACCRevenueAmount.increaseData.toLocaleString() || 0 + subItem.children = null }) } }) diff --git a/src/utils/exportExcelFun.ts b/src/utils/exportExcelFun.ts index 8521675..c8c4346 100644 --- a/src/utils/exportExcelFun.ts +++ b/src/utils/exportExcelFun.ts @@ -10,6 +10,7 @@ type AnyCol = { renderText?: (text: any, record: any, index: number) => any; hideInTable?: boolean; valueType?: 'index' | string; + align?: 'left' | 'center' | 'right'; }; /** ========== 新增:拍平树形数据 ========== */ @@ -258,8 +259,14 @@ export async function exportXlsxFromProColumnsExcelJS( const rec = batch[i]; const row = ws.getRow(currentRowIndex + i); leafCols.forEach((col, j) => { + const cell = row.getCell(j + 1); // 这里 rowIndex 仍然传全局行号 start + i,序号列会自动正确 - row.getCell(j + 1).value = getCellValue(col, rec, start + i); + cell.value = getCellValue(col, rec, start + i); + + // 设置单元格对齐方式 + if (col.align) { + cell.alignment = { horizontal: col.align, vertical: 'middle' }; + } }); // 适度让出主线程:ExcelJS 是纯 JS,通常也很稳;如需进一步优化可用 setTimeout 分批 }