← 返回
未分类

Excel排版美化工具

按博维管理咨询公司(MOWAYS)Excel行文格式标准生成、改写和审阅Excel表格。 严格遵循博维Excel制表规范:标题用黑体加粗居中,正文中文仿宋/英文数字Times New Roman, 表头黑体居中,重点内容浅黄背景+暗红色字体,合计行加粗加色,千分符,消除公式错误值, 公式列标注,数据分区(取数区/运算区/输出区),链接取数,版本管理。 当用户提到"博维Excel""MOWAYS表格""博维表格格式""做个Excel""做个表格""帮我做表""出个表" "Excel格式检查""表格格式""制表规范""博维制表""工作底稿""测算表""测算模型" "薪酬测算""股权测算""绩效测算""财务测算""数据表""汇总表""分配表""明细表"时触发此技能。 当用户上传.xlsx文件并要求按博维标准改写、格式检查或审阅时,也应触发此技能。 即使用户只是说"帮我做个表""这个表格格式对不对""出个Excel",只要上下文涉及博维或咨询项目, 就应使用此技能。本技能与通用xlsx技能的区别在于:本技能严格执行博维公司特定的排版规范和 制表习惯,而非通用的财务建模标准。当同时触发时,本技能
按博维管理咨询公司(MOWAYS)Excel行文格式标准生成、改写和审阅Excel表格。 严格遵循博维Excel制表规范:标题用黑体加粗居中,正文中文仿宋/英文数字Times New Roman, 表头黑体居中,重点内容浅黄背景+暗红色字体,合计行加粗加色,千分符,消除公式错误值, 公式列标注,数据分区(取数区/运算区/输出区),链接取数,版本管理。 当用户提到"博维Excel""MOWAYS表格""博维表格格式""做个Excel""做个表格""帮我做表""出个表" "Excel格式检查""表格格式""制表规范""博维制表""工作底稿""测算表""测算模型" "薪酬测算""股权测算""绩效测算""财务测算""数据表""汇总表""分配表""明细表"时触发此技能。 当用户上传.xlsx文件并要求按博维标准改写、格式检查或审阅时,也应触发此技能。 即使用户只是说"帮我做个表""这个表格格式对不对""出个Excel",只要上下文涉及博维或咨询项目, 就应使用此技能。本技能与通用xlsx技能的区别在于:本技能严格执行博维公司特定的排版规范和 制表习惯,而非通用的财务建模标准。当同时触发时,本技能优先于通用xlsx技能。
zzuliu
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 11
下载
💾 0
安装
1
版本
#latest

概述

博维(MOWAYS)Excel 制表规范

本技能用于按照博维管理咨询公司的Excel行文格式标准来创建、修改和审阅Excel表格。

博维的Excel规范追求的核心目标是:打印出来清晰美观、任何人拿到都能看懂、数据可回溯可验证

> 前置依赖: 使用本技能前,需确保已安装 openpyxl:

> ```bash

> C:\Users\Lenovo\.workbuddy\binaries\python\envs\default\Scripts\pip install openpyxl

> ```

> 运行 Python 脚本时使用:

> ```bash

> C:\Users\Lenovo\.workbuddy\binaries\python\envs\default\python.exe script.py

> ```

> 在使用本技能之前,先阅读通用 xlsx skill(xlsx/SKILL.md)获取openpyxl的基础用法和通用最佳实践。

> 本技能中的规则在与通用xlsx skill冲突时,以本技能为准。


一、格式标准

1. 标题

  • 字体:黑体,16-24号(视具体情况,常用20号),加粗
  • 对齐:跨列合并居中(合并范围覆盖数据区所有列),垂直居中
  • 背景色:可用浅蓝色背景(theme 4, tint 0.8)来区分标题区域
  • 行高:适当加大(如 17.5-25.5 pt)

openpyxl 实现要点:

from openpyxl.styles import Font, Alignment, PatternFill

title_font = Font(name='黑体', size=20, bold=True)
title_align = Alignment(horizontal='center', vertical='center', wrap_text=True)
# 合并标题行覆盖所有数据列
ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=last_col)
ws['A1'].font = title_font
ws['A1'].alignment = title_align

2. 正文(数据区)

  • 中文使用仿宋字体(打印出来清晰美观)
  • 英文和数字使用 Times New Roman 字体
  • 字号:9-12号(常用12号,10.5为五号字),视具体情况而定
  • 行距、列宽视具体情况和打印页面布局而定

由于openpyxl单个单元格只能设置一种字体,按以下规则处理:

  • 纯中文内容的单元格:设置 Font(name='仿宋', size=12)
  • 含英文/数字的单元格(如日期、金额、序号、百分比):设置 Font(name='Times New Roman', size=12)
  • 中文职位名称等:设置 Font(name='仿宋', size=12)
  • 如果一个单元格混合中英文,优先使用 Font(name='Times New Roman', size=12) 并通过 ws.sheet_properties 设置默认字体

3. 表头行

  • 字体:黑体,12号,不加粗(除非特别需要)
  • 对齐:水平居中,垂直居中
  • 边框:四边细线(thin)
  • 表头内容应清晰标注单位,如"月薪(元)""工龄(年)""拟分配股份数(万股)"
header_font = Font(name='黑体', size=12)
header_align = Alignment(horizontal='center', vertical='center')
header_border = Border(
    left=Side(style='thin'), right=Side(style='thin'),
    top=Side(style='thin'), bottom=Side(style='thin')
)

4. 数据行

  • 中文内容(姓名、部门、职位):Font(name='仿宋', size=12)
  • 数字/英文/日期内容:Font(name='Times New Roman', size=12)Font(name='仿宋', size=12)
  • 对齐:
  • 姓名列 → 左对齐(horizontal='left'
  • 序号、数值、日期、百分比等 → 居中(horizontal='center'
  • 垂直对齐:统一垂直居中vertical='center'
  • 边框:四边细线(thin),与表头一致

5. 字体颜色和背景色

用于两个场景:

  1. 突出重要内容和单元格(如合计行、关键数据)
  2. 行数较多时避免阅读串行

规则:

  • 突出色方案:浅黄色背景(theme 7, tint 0.8) + 暗红色字体RGB: C00000
  • 合计行:浅黄背景 + 暗红字体 + 加粗
from openpyxl.styles import PatternFill

# 突出色
highlight_font = Font(name='仿宋', size=12, bold=True, color='C00000')
highlight_fill = PatternFill(start_color='FFF2CC', end_color='FFF2CC', fill_type='solid')
# 注意:theme色在openpyxl中不易直接使用,用近似RGB替代
# theme 7 tint 0.8 ≈ FFF2CC(浅黄)
# 暗红 = C00000

6. 内容布局

(1) 公司/单位名称与日期

  • 公司名称放在表格左上方或居中位置
  • 设计日期/填表日期放在表格右上方
  • 这两个信息在标题行下方、表头行上方
  • 公司名称用浅黄背景+暗红字体突出

(2) 表头布局

  • 表头需要布局好各类小标题及其子项
  • 可以根据打印要求分多行多列表示(合并单元格)
  • 每列表头要标注清楚含义和单位

(3) 数字格式

  • 金额、大额数字使用千分符number_format = '#,##0'
  • 数量保留到整数位(视行业而定)
  • 销售金额、兑现金额等保留2位小数(number_format = '#,##0.00'
  • 百分比使用百分比格式(number_format = '0.00%''0.0%'
  • 日期使用标准格式(number_format = 'YYYY-MM-DD'

(4) 消除错误值

  • 表格中不能出现错误字符(#DIV/0!, #N/A, #REF! 等)
  • 数字为"0"时显示为 "-"
  • 编制公式时使用 IF/IFNA/IFERROR 消除错误值
  • 示例:=IF(ISERROR(A1/B1),0,A1/B1)=IFERROR(A1/B1,0)

在openpyxl中生成公式时,始终包裹IFERROR:

# 不要写:ws['F2'] = '=A2/B2'
# 要写:
ws['F2'] = '=IFERROR(A2/B2,"-")'

(5) 公式标注列

  • 列与列之间如有逻辑关系,需加一行标注计算公式
  • 可用 "A, B, C…" 或 "1, 2, 3…" 标识列,然后在合适位置写出公式关系
  • 例如在合计行下方加一行:购股金额=A*3(万元)
  • 金额大写行:用合并单元格显示大写金额

7. 边框

  • 数据区域统一使用四边细线(thin border)
  • 标题区域可以不加边框或仅加下边框
  • 合并的标题单元格通常只有外边框
from openpyxl.styles import Border, Side

thin_border = Border(
    left=Side(style='thin'),
    right=Side(style='thin'),
    top=Side(style='thin'),
    bottom=Side(style='thin')
)

二、工作底稿原则

博维制表不仅关注最终呈现,更强调Excel文件作为"工作底稿"的可追溯性和可读性。

在为咨询项目制作测算表、分析模型时,遵循以下原则:

1. 数据分区:取数区、运算区、输出区

将数据处理过程分为三个区域,尽量用三张独立的工作表(Sheet)来组织:

  • 取数区(Input):原始数据经过基本加工后的数据,基本保留数据原貌。原始数据需另外保存一份。
  • 运算区(Working):公式运算区,复杂计算拆分成多步,让每个参与计算的要素一目了然。
  • 输出区(Output):输出区的公式最好全部引用运算区的计算结果(=Sheet_Working!B1),不再包含独立公式。

实际操作:

  • 创建多Sheet的工作簿时,命名为 Input/取数区Working/运算区Output/输出区
  • 如果在单Sheet中完成,用表头标注区分区域
  • 输出区更注意标注和解释

2. 永远使用链接取数

  • 尽量让数据来源存在于同一个工作簿中
  • 永远用 =单元格引用 进行取数,而不是复制粘贴和手打数值
  • 从"最终加工形态的数据"处取数,而非从中间状态取数
  • 同一计算口径的数字,从同一个加工场所取走

在openpyxl中:当需要在不同Sheet间引用数据时,在输出Sheet写公式引用运算Sheet的结果:

ws_output['B2'] = "=Working!B10"

3. 不厌其烦地标注

  • 辅助列的表头一定要有标注(说明该列用途)
  • 标注方式用文字说明而非纯数字编码(y/n 优于 1/0
  • 在当前区块最右侧加入「备注」列,放入相关文字说明
  • 不推荐在密集表格中使用Excel自带的「批注/附注」功能(容易挡住临近单元格)

4. 文件版本管理

  • 每次修改先另存为新文件(在打开之前就复制)
  • 文件命名格式:日期+文件标题+版本号
  • 可在文件名中体现重大变化(如 src-updated、commented、cleared)
  • 甚至把计算口径也写在标题里

三、打印设置

生成的Excel文件应该考虑打印友好性:

# 设置打印区域
ws.print_area = f'A1:{get_column_letter(last_col)}{last_row}'

# 页面设置
ws.page_setup.orientation = 'landscape'  # 或 'portrait',视表格宽度
ws.page_setup.paperSize = ws.PAPERSIZE_A4
ws.page_setup.fitToWidth = 1
ws.page_setup.fitToHeight = 0  # 不限制高度
ws.sheet_properties.pageSetUpPr.fitToPage = True

# 页边距(厘米转英寸)
ws.page_margins.left = 0.75
ws.page_margins.right = 0.75
ws.page_margins.top = 1.0
ws.page_margins.bottom = 1.0

# 冻结首行(表头)
ws.freeze_panes = 'A2'  # 或表头下一行

四、完整示例:创建一张博维标准表格的流程

import openpyxl
from openpyxl.styles import Font, Alignment, PatternFill, Border, Side
from openpyxl.utils import get_column_letter

wb = openpyxl.Workbook()
ws = wb.active
ws.title = "股权分配表"

# === 样式定义 ===
title_font = Font(name='黑体', size=20, bold=True)
title_align = Alignment(horizontal='center', vertical='center', wrap_text=True)

header_font = Font(name='黑体', size=12)
header_align = Alignment(horizontal='center', vertical='center')

body_font_cn = Font(name='仿宋', size=12)           # 中文内容
body_font_en = Font(name='Times New Roman', size=12)  # 英文/数字内容

highlight_font = Font(name='仿宋', size=12, bold=True, color='C00000')
highlight_fill = PatternFill(start_color='FFF2CC', end_color='FFF2CC', fill_type='solid')

thin_border = Border(
    left=Side(style='thin'), right=Side(style='thin'),
    top=Side(style='thin'), bottom=Side(style='thin')
)

center_align = Alignment(horizontal='center', vertical='center')
left_align = Alignment(horizontal='left', vertical='center')

# === 1. 标题 ===
last_col = 10  # J列
ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=last_col)
ws['A1'] = 'XX企业股权分配表'
ws['A1'].font = title_font
ws['A1'].alignment = title_align
ws.row_dimensions[1].height = 25

# === 2. 副标题行(公司名 + 日期) ===
ws['A2'] = '公司:XX有限公司'
ws['A2'].font = Font(name='Times New Roman', size=12, color='C00000')
ws['A2'].fill = highlight_fill
ws['A2'].alignment = left_align

ws[f'{get_column_letter(last_col-1)}2'] = '设计日期:2025年3月30日'
ws[f'{get_column_letter(last_col-1)}2'].font = Font(name='宋体', size=12)
ws[f'{get_column_letter(last_col-1)}2'].alignment = left_align

# === 3. 表头 ===
headers = ['序号', '姓名', '部门', '职位', '入职日期', '工龄(年)',
           '月薪(元)', '拟分配股份数(万股)', '股份占比', '备注']
for col_idx, h in enumerate(headers, 1):
    cell = ws.cell(row=3, column=col_idx, value=h)
    cell.font = header_font
    cell.alignment = header_align
    cell.border = thin_border

# === 4. 数据行(示例) ===
# ... 填入数据,根据内容类型选择 body_font_cn 或 body_font_en
# ... 所有数据单元格设置 thin_border 和 center_align

# === 5. 合计行 ===
# sum_row 的关键列使用 highlight_font + highlight_fill + thin_border

# === 6. 公式标注行 ===
# 在合计行下方加标注:如 "购股金额=A*3(万元)"

# === 7. 数字格式 ===
# 金额列: cell.number_format = '#,##0'
# 百分比列: cell.number_format = '0.00%'
# 日期列: cell.number_format = 'YYYY-MM-DD'

# === 8. 列宽调整 ===
# 根据内容自适应或手动设置合理列宽

# === 9. 打印设置 ===
ws.page_setup.orientation = 'landscape'
ws.page_setup.paperSize = ws.PAPERSIZE_A4

五、审阅检查清单

当审阅已有Excel文件是否符合博维标准时,按以下清单逐项检查:

  1. 字体:中文是否为仿宋?英文/数字是否为Times New Roman?表头是否为黑体?标题是否为黑体加粗?
  2. 字号:标题16-24号?正文9-12号?
  3. 对齐:标题是否跨列居中?表头是否居中?姓名是否左对齐?数值是否居中?是否统一垂直居中?
  4. 颜色:重要数据/合计行是否使用浅黄背景+暗红字体?是否加粗?
  5. 边框:数据区是否统一四边细线?
  6. 数字格式:金额是否有千分符?百分比格式是否正确?日期格式是否统一?
  7. 错误值:是否存在 #DIV/0!#N/A#REF! 等错误?0值是否显示为"-"?
  8. 公式标注:列间有逻辑关系的是否标注了公式?
  9. 表头标注:是否清楚标注了单位(元、万元、年、%等)?
  10. 布局:公司名称、日期位置是否正确?表头层级是否清晰?
  11. 打印:页面方向是否合理?是否能在A4纸上清晰打印?
  12. 工作底稿:数据是否分区?是否使用链接取数?辅助列是否有标注?

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-06-10 18:22 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

会议纪要

user_6113fd9f
会议纪要 + 工作简报的skill。把会议文字稿按模板整理为正式word版纪要并入库;月底按信函简报样式聚合多份切片为正式word版信函式简报;总结出 5 项优先级清单或 3类交付清单。覆盖销售/经营分析/项目管理/调研/参观/流程梳理/制
★ 0 📥 15

报销整理发票

user_6113fd9f
博维管理咨询差旅报销自动化:从邮箱拉发票、按项目归属、填报销表、按甲方/博维拆zip打印。触发词:处理差旅报销、整理本月发票、月度报销、报销单、差旅费、整理上月发票、帮我做报销。当用户提到"报销""差旅""发票"等关键词,且上下文涉及博维/
★ 0 📥 11

word排版

user_6113fd9f
按博维管理咨询公司(MOWAYS)Word行文排版标准V2.6自动规范Word文件排版。 覆盖页面设置、字体字号、标题层级、行距段距、页码页眉、目录、三线表、图表标题、 封面、附件、署名日期等全部排版规则。v2.7 起强制执行中文标点国标
★ 0 📥 38