wps-attendance
考勤打卡统计。把考勤机导出的打卡数据丢进来,自动统计每个人的 迟到、早退、缺勤、加班时长,生成月度考勤汇总表,异常考勤自动标红。 用于帮助HR处理考勤数据。当用户提到考勤、打卡、迟到、加班统计时触发。 Attendance tracker - generates summary reports from…
WPS宏代码助手。告诉我你要自动化什么操作,帮你写WPS JSA宏脚本, 批量改名、自动填表、一键汇总,重复劳动交给宏。注意WPS用的是JavaScript不是VBA。 用于帮助用户编写WPS宏脚本。当用户提到宏、macro、自动化、批量操作时触发。 WPS JSA macro generator - automates repetitive tasks in WPS Office.
$ npx -y skills add Bwkyd/wps-skills --skill wps-jsa-macro --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wps-jsa-macroContext preview
The summary Claude sees to decide when to auto-load this skill.
WPS宏代码助手。告诉我你要自动化什么操作,帮你写WPS JSA宏脚本, 批量改名、自动填表、一键汇总,重复劳动交给宏。注意WPS用的是JavaScript不是VBA。 用于帮助用户编写WPS宏脚本。当用户提到宏、macro、自动化、批量操作时触发。 WPS JSA macro generator - automates repetitive tasks in WPS Office.
name: wps-jsa-macro
description: |
WPS宏代码助手。告诉我你要自动化什么操作,帮你写WPS JSA宏脚本,
批量改名、自动填表、一键汇总,重复劳动交给宏。注意WPS用的是JavaScript不是VBA。
用于帮助用户编写WPS宏脚本。当用户提到宏、macro、自动化、批量操作时触发。
WPS JSA macro generator - automates repetitive tasks in WPS Office.
license: MIT
user-invocable: true
argument-hint: '[操作描述]'
allowed-tools: 'Read, Grep, Glob, Bash, Write, Edit'
metadata:
author: BWKYD
title: WPS宏代码助手
description_zh: 编写WPS JSA宏脚本,实现表格和文档的批量自动化操作
tags:
- WPS
- JSA
- JavaScript
- 宏
- 自动化
version: 1.0.2
license: MIT生成 WPS Office **JSA(JavaScript for Applications)** 宏脚本。
> **核心原则:WPS 宏 ≠ VBA。WPS 使用 JavaScript 语法,API 虽与 VBA 相似但有重要差异。 > 绝对不要输出 VBA 代码。**
**必须牢记这些差异,避免生成错误代码:**
| 特性 | VBA | WPS JSA | |------|-----|---------| | 语言 | Visual Basic | **JavaScript** | | 变量声明 | `Dim x As Integer` | `var x = 0` 或 `let x = 0` | | 函数定义 | `Sub / Function` | `function name()` | | 字符串连接 | `&` | `+` | | 注释 | `'` 单引号 | `//` 或 `/* */` | | 数组索引 | 从1开始 | **从0开始**(但集合类从1开始) | | 无返回值过程 | `Sub` | `function`(无区分) | | For Each | `For Each x In col` | `for (var i = 1; i <= col.Count; i++)` | | 错误处理 | `On Error` | `try...catch` | | 对象判空 | `If obj Is Nothing` | `if (obj == null \|\| obj == undefined)` | | 类型转换 | `CInt(), CStr()` | `parseInt(), String()` | | 布尔值 | `True / False` | `true / false` | | 结束语句 | `End Sub / End If` | `}` | | Set关键字 | `Set obj = ...` | 不需要,直接 `var obj = ...` |
// 应用对象
Application // WPS应用实例
Application.ActiveDocument // 当前活动文档(文字)
Application.ActiveWorkbook // 当前活动工作簿(表格)
Application.ActivePresentation // 当前活动演示
// 控制台输出(调试用)
Console.log("message") // WPS宏编辑器控制台
// 对话框
Application.alert("消息") // 类似 MsgBox// 文档操作
var doc = Application.ActiveDocument
var docs = Application.Documents
docs.Open("/path/to/file.docx")
docs.Add() // 新建文档
// 内容操作
var range = doc.Content // 全文范围
var paras = doc.Paragraphs // 段落集合
var para = doc.Paragraphs.Item(1) // 第1段(从1开始)
para.Range.Text // 段落文本
para.Range.Font.Name = "宋体"
para.Range.Font.Size = 12
para.Range.Font.Bold = true
// 查找替换
var find = doc.Content.Find
find.Text = "旧文本"
find.Replacement.Text = "新文本"
find.Execute(undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, 2)
// 最后参数 2 = wdReplaceAll
// 表格
var table = doc.Tables.Item(1)
table.Cell(1, 1).Range.Text // 第1行第1列
table.Rows.Count // 行数
table.Columns.Count // 列数
// 书签
var bm = doc.Bookmarks.Item("书签名")
bm.Range.Text = "填入内容"
// 保存
doc.Save()
doc.SaveAs("/path/to/new.docx")// 工作簿和工作表
var wb = Application.ActiveWorkbook
var ws = wb.ActiveSheet
var ws2 = wb.Sheets.Item("Sheet1") // 按名称
var ws3 = wb.Sheets.Item(1) // 按索引(从1开始)
// 单元格操作
var cell = ws.Range("A1")
cell.Value2 = "Hello" // 设置值(用Value2更可靠)
cell.Formula = "=SUM(B1:B10)" // 设置公式
cell.Font.Name = "宋体"
cell.Font.Size = 11
cell.Font.Bold = true
cell.Interior.Color = 0xFFFF00 // 背景色(BGR格式)
// 范围操作
var rng = ws.Range("A1:D10")
rng.Value2 // 返回二维数组
rng.NumberFormat = "#,##0.00" // 数字格式
rng.HorizontalAlignment = -4108 // xlCenter
rng.Borders.LineStyle = 1 // 边框
// 行列操作
ws.Rows(1).RowHeight = 30
ws.Columns("A").ColumnWidth = 15
ws.Rows("2:5").Delete()
// 遍历(注意:Cells索引从1开始)
var lastRow = ws.Range("A1").End(-4121).Row // xlDown = -4121
// 或用 UsedRange
var lastRow2 = ws.UsedRange.Rows.Count
for (var i = 1; i <= lastRow; i++) {
var val = ws.Cells(i, 1).Value2
// 处理每行数据
}
// 自动筛选
ws.Range("A1:D1").AutoFilter()
ws.Range("A1:D1").AutoFilter(1, "条件值") // 第1列筛选
// 数据透视表(基础)
// WPS表格数据透视表API与Excel基本一致// 演示文稿
var ppt = Application.ActivePresentation
var slides = ppt.Slides
// 幻灯片操作
var slide = slides.Item(1)
slides.Add(2, 1) // 在第2位添加空白幻灯片(布局1=空白)
// 形状和文本
var shape = slide.Shapes.Item(1)
shape.TextFrame.TextRange.Text = "新标题"
shape.TextFrame.TextRange.Font.Size = 28
// 添加文本框
var newShape = slide.Shapes.AddTextbox(1, 100, 100, 400, 200)
// (方向, 左, 上, 宽, 高) 单位: pt
newShape.TextFrame.TextRange.Text = "内容"
// 遍历所有幻灯片
for (var i = 1; i <= slides.Count; i++) {
var s = slides.Item(i)
for (var j = 1; j <= s.Shapes.Count; j++) {
var shp = s.Shapes.Item(j)
if (shp.HasTextFrame) {
Console.log(shp.TextFrame.TextRange.Text)
}
}
}确认:
遵循以下规范:
**代码规范:**
/**
* 宏名称:功能简述
* 作用:详细说明
* 使用方法:在WPS中 开发工具 → 宏 → 选择此宏 → 运行
*/
function MacroName() {
try {
// 主逻辑
} catch (e) {
Application.alert("执行出错:" + e.message)
}
}**编码要点:** 1. 始终使用 `try...catch` 包裹主逻辑 2. 集合索引从 **1** 开始(`Sheets.Item(1)`,`Cells(1,1)`) 3. 用 `Value2` 而非 `Value` 读写单元格值 4. 用 `Application.alert()` 而非 `MsgBox` 5. 不要使用 `Set` 关键字 6. 不要使用 VBA 的 `Sub...End Sub` 语法 7. 字符串用 `+` 连接而非 `&` 8. 布尔值小写 `true/false` 9. 文件路径使用正斜杠 `/` 或双反斜杠 `\\`
将JSA脚本写入 `.js` 文件,并提供使用说明:
使用方法: 1. 打开 WPS 文档/表格/演示 2. 菜单栏 → 开发工具 → 宏编辑器(或按 Alt+F11) 3. 在编辑器中新建模块 4. 粘贴脚本代码 5. 运行(F5)或关闭编辑器后通过 开发工具→宏 运行
function BatchReplace() {
var doc = Application.ActiveDocument
var replacements = [
["旧词1", "新词1"],
["旧词2", "新词2"]
]
for (var i = 0; i < replacements.length; i++) {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…