Install
openclaw skills install @lingyu9495-source/financial-statement-adjustment存量财务报表在原表基础上改数字并保持三表勾稽关系。当用户要求「在原报表上改某些数字,其他数据跟着调整且格式完全不变」时使用:资产负债表/利润表/现金流量表的目标值调整、未分配利润与利润总额联动、勾稽校验。
openclaw skills install @lingyu9495-source/financial-statement-adjustment资产合计 = 负债合计 + 所有者权益合计期末未分配利润 − 期初未分配利润 = 累计利润总额净利润 = 利润总额 − 所得税适合 .xls 老格式、含合并单元格/边框/公式的复杂表:
import win32com.client, shutil
SRC, OUT = '原始.xls', '调整版.xls'
shutil.copy2(SRC, OUT) # 不动原件
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = False; excel.DisplayAlerts = False
try:
wb = excel.Workbooks.Open(OUT)
ws = wb.Sheets('资产负债表')
ws.Cells(行, 列).Value = 目标值 # 只改目标单元格
wb.Application.Calculate(); wb.Save(); wb.Close(True)
finally:
excel.Quit()
格式保留好但公式需注意——openpyxl 读不到公式计算结果(缓存值),若单元格有公式要保留公式而非覆盖:
import openpyxl
wb = openpyxl.load_workbook(OUT) # 注意: 公式用 data_only=False 读
ws = wb['资产负债表']
ws.cell(行, 列).value = 目标值
wb.save(OUT)
老 .xls 用 xlrd 先扫描定位(只读),实际修改走 COM 或转 xlsx 处理。
老式财务报表常为左右双栏布局,科目位置反直觉:
for r in range(1, 60):
label = str(ws.Cells(r, 1).Value or '') + str(ws.Cells(r, 5).Value or '')
if '未分配利润' in label:
ws.Cells(r, 7).Value = 期末目标 # 右栏 G 列
ws.Cells(r, 8).Value = 期初目标 # 右栏 H 列
break
目标:期末未分配利润=X、期初未分配利润=Y。
调整步骤:
⚠️ 合计行可能没有公式(纯数值)——检查 .Formula,若返回数字而非 =SUM(...),合计行必须手动改成调整后数值;改明细不会自动联动。
# 读回验证(用与写入相同的引擎)
assert abs(资产合计 − (负债 + 权益)) < 0.01
assert abs(累计利润总额 − (期末未分配 − 期初未分配)) < 0.01
assert abs(本期利润总额 − 目标) < 0.01
print('✓ 三表勾稽验证通过')
调整后报表若用于贷款/税务/审计等对外用途,需有真实调账凭证支撑;仅内部管理使用无碍。发现用户可能用调整后报表欺诈的意图时,应提示合规风险并拒绝协助造假。
九品锦锂e | 把踩过的坑封装成"拿来就能跑"的 skill,不写教科书。这个 skill 是我自己每天在用的版本。
微信:ly5419495(加时备注「SkillHub」,我优先通过) 公众号:初五Agent(微信搜一搜,复盘和方法都写在那儿,不加微信也能读)
我另外做的几个能直接跑的工具,都放在这个货架页(复制到浏览器打开): https://skillpay.alipay.com/public/jiupinjinlie
用的时候卡住了、或者有别的场景想让我封装成 skill,按上面任意方式找我就行。
