wps-attendance
考勤打卡统计。把考勤机导出的打卡数据丢进来,自动统计每个人的 迟到、早退、缺勤、加班时长,生成月度考勤汇总表,异常考勤自动标红。 用于帮助HR处理考勤数据。当用户提到考勤、打卡、迟到、加班统计时触发。 Attendance tracker - generates summary reports from…
PPT一键美化。PPT内容写好了但排版一言难尽?帮你诊断字体混乱、 颜色太多、对齐不整齐等问题,一键批量统一字体配色,还能批量删动画。 用于帮助用户提升PPT视觉质量。当用户提到PPT美化、PPT太丑、排版不整齐时触发。 PPT beautification tool - batch fixes fonts, colors, and alignment.
$ npx -y skills add Bwkyd/wps-skills --skill wps-ppt-polish --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wps-ppt-polishContext preview
The summary Claude sees to decide when to auto-load this skill.
PPT一键美化。PPT内容写好了但排版一言难尽?帮你诊断字体混乱、 颜色太多、对齐不整齐等问题,一键批量统一字体配色,还能批量删动画。 用于帮助用户提升PPT视觉质量。当用户提到PPT美化、PPT太丑、排版不整齐时触发。 PPT beautification tool - batch fixes fonts, colors, and alignment.
name: wps-ppt-polish
description: |
PPT一键美化。PPT内容写好了但排版一言难尽?帮你诊断字体混乱、
颜色太多、对齐不整齐等问题,一键批量统一字体配色,还能批量删动画。
用于帮助用户提升PPT视觉质量。当用户提到PPT美化、PPT太丑、排版不整齐时触发。
PPT beautification tool - batch fixes fonts, colors, and alignment.
license: MIT
user-invocable: true
argument-hint: '[PPT文件路径/问题描述]'
allowed-tools: 'Read, Grep, Glob, Bash, Write, Edit'
metadata:
author: BWKYD
title: PPT美化
description_zh: 检查PPT的排版问题,统一字体、配色和对齐方式
tags:
- PPT
- 美化
- 排版
- 配色
- WPS
version: 1.0.1
license: MIT诊断PPT问题 → 一键批量修复 → 专业级视觉效果。
> 内容写好了,排版却一言难尽?交给我。
🔴 严重问题 · 字体不统一(宋体+黑体+楷体混用) · 文字溢出文本框 · 图片变形拉伸 · 元素互相遮挡 🟡 排版问题 · 元素不对齐 · 间距不一致 · 页边距太小/太大 · 内容过多(一页>7行文字) 🔵 美观问题 · 配色超过4种 · 背景花哨 · 动画过多 · 字号不规范
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from collections import Counter
import os
def diagnose_ppt(ppt_path):
"""诊断PPT问题"""
prs = Presentation(ppt_path)
issues = []
fonts_used = Counter()
colors_used = Counter()
total_slides = len(prs.slides)
for slide_num, slide in enumerate(prs.slides, 1):
text_count = 0
for shape in slide.shapes:
if shape.has_text_frame:
for para in shape.text_frame.paragraphs:
for run in para.runs:
if run.font.name:
fonts_used[run.font.name] += 1
if run.font.color and run.font.color.rgb:
colors_used[str(run.font.color.rgb)] += 1
text_count += len(para.text)
# 检查图片是否变形
if shape.shape_type == 13: # Picture
if hasattr(shape, 'image'):
w_ratio = shape.width / shape.height
# 原始比例检查
if abs(w_ratio - 1.33) > 0.5 and abs(w_ratio - 1.78) > 0.5:
issues.append(f"P{slide_num}: 图片可能变形")
if text_count > 500:
issues.append(f"P{slide_num}: 文字过多({text_count}字)")
# 字体统一性
if len(fonts_used) > 3:
issues.append(f"使用了{len(fonts_used)}种字体,建议≤3种")
# 颜色统一性
if len(colors_used) > 6:
issues.append(f"使用了{len(colors_used)}种颜色,建议≤5种")
return {
'total_slides': total_slides,
'fonts': dict(fonts_used.most_common(10)),
'colors': dict(colors_used.most_common(10)),
'issues': issues,
}**Python-pptx批量修复:**
def polish_ppt(ppt_path, output_path, config=None):
"""批量美化PPT"""
default_config = {
'title_font': '微软雅黑',
'body_font': '微软雅黑',
'title_size': Pt(28),
'body_size': Pt(18),
'primary_color': '2C3E50',
'accent_color': '3498DB',
}
cfg = {**default_config, **(config or {})}
prs = Presentation(ppt_path)
for slide in prs.slides:
for shape in slide.shapes:
if shape.has_text_frame:
for para in shape.text_frame.paragraphs:
for run in para.runs:
# 统一字体
if shape == slide.shapes.title:
run.font.name = cfg['title_font']
run.font.size = cfg['title_size']
run.font.bold = True
else:
run.font.name = cfg['body_font']
if not run.font.size or run.font.size < Pt(14):
run.font.size = cfg['body_size']
prs.save(output_path)
return os.path.abspath(output_path)**JSA宏批量修复(在WPS中直接运行):**
// JSA: PPT批量统一字体和字号
function PolishPresentation() {
var pres = Application.ActivePresentation;
var titleFont = "微软雅黑";
var bodyFont = "微软雅黑";
var titleSize = 28;
var bodySize = 18;
var fixCount = 0;
for (var i = 1; i <= pres.Slides.Count; i++) {
var slide = pres.Slides.Item(i);
for (var j = 1; j <= slide.Shapes.Count; j++) {
var shape = slide.Shapes.Item(j);
if (shape.HasTextFrame) {
var tf = shape.TextFrame.TextRange;
for (var k = 1; k <= tf.Paragraphs().Count; k++) {
var para = tf.Paragraphs(k);
var font = para.Font;
if (j === 1) { // 假定第一个shape是标题
font.Name = titleFont;
font.NameFarEast = titleFont;
font.Size = titleSize;
font.Bold = true;
} else {
font.Name = bodyFont;
font.NameFarEast = bodyFont;
if (font.Size < 14) {
font.Size = bodySize;
}
}
fixCount++;
}
}
}
}
Application.alert("已修复 " + fixCount + " 个文本段落\n共 "
+ pres.Slides.Count + " 页");
}
// JSA: 删除所有动画效果(精简版)
function RemoveAllAnimations() {
var pres = Application.ActivePresentation;
var count = 0;
for (var i = 1; i <= pres.Slides.Count; i++) {
var timeline = pres.Slides.Item(i).TimeLine;
var seq = timeline.MainSequence;
while (seq.Count > 0) {
seq.Item(1).Delete();
count++;
}
}
Application.alert("已删除 " + count + " 个动画效果");
}商务蓝(推荐): 主色 #2C3E50 文字/标题 强调 #3498DB 重点/图表 辅助 #ECF0F1 背景/底色 点缀 #E74C3C 警示/重点数据 科技紫: 主色 #2D1B69 标题 强调 #7C3AED 重点 辅助 #F3F0FF 背景 点缀 #06B6D4 数据 简约灰: 主色 #1A1A2E 标题 强调 #16213E 内容 辅助 #F5F5F5 背景 点缀 #E94560 重点
1. 输出诊断报告(问题列表+严重程度) 2. 生成修复后的PPT文件 3. 或提供JSA宏代码在WPS中直接运行
42 个 WPS Office 办公自动化 Claude Code Skills 集合 一句话指令,让 Claude 帮你自动生成 Word / Excel / PPT / PDF 文档。
Repo: Bwkyd/wps-skills
考勤打卡统计。把考勤机导出的打卡数据丢进来,自动统计每个人的 迟到、早退、缺勤、加班时长,生成月度考勤汇总表,异常考勤自动标红。 用于帮助HR处理考勤数据。当用户提到考勤、打卡、迟到、加班统计时触发。 Attendance tracker - generates summary reports from…
文档批量格式转换。把一个文件夹里的Word全转文本、Excel全导出CSV、 Markdown转Word,支持docx/txt/xlsx/csv/md等格式批量互转,一次搞定。 用于帮助用户批量转换文档格式。当用户提到批量转换、格式转换、导出时触发。 Batch converts documents between…
预算表一键生成。部门年度预算、项目预算、活动经费预算,选个模板填数字就行, 小计合计公式自动写好,还有预算vs实际对比和执行率自动计算。 用于帮助财务和行政制作预算表。当用户提到预算、费用表、经费时触发。 Budget spreadsheet generator with formulas and variance…
证书奖状批量生成。给一份名单,批量生成荣誉证书、结业证书、聘书、感谢信, 每人一份独立文件,年终评优、培训结业、表彰活动必备工具。 用于帮助用户批量生成证书。当用户提到证书、奖状、聘书时触发。 Batch certificate/award generator from a list of recipients.
数据图表一键生成。不知道数据该用什么图表?告诉我你的数据和目的, 自动推荐最佳图表类型并生成,柱状图折线图饼图散点图都支持,还帮你调配色。 用于帮助用户制作数据可视化图表。当用户提到图表、柱状图、折线图、饼图时触发。 Chart generator - recommends best chart type and…
日历排班值班表。生成带法定节假日和调休标注的月度/年度日历表, 还能做三班倒/两班倒排班表和节假日值班安排,颜色区分不同班次一目了然。 用于帮助用户生成日历和排班表。当用户提到日历、排班、值班、节假日时触发。 Chinese calendar with holidays, shift scheduling, and…