Communitygithub.com

yb2460/cli-anything-wps

Herramienta CLI para automatizar WPS Office (Presentaciones, Documentos y Hojas de Cálculo) basada en datos JSON y COM.

¿Qué es cli-anything-wps?

Esta habilidad para agentes de IA te permite controlar completamente WPS Office (WPS Writer, WPS Calc y WPS Impress) a través de su interfaz COM, todo desde la línea de comandos. Es ideal para generar presentaciones completas (PPTX/PDF) a partir de datos JSON, incluyendo la integración de gráficos generados con matplotlib. El flujo de trabajo principal es la creación de presentaciones de 12-15 diapositivas mediante un pipeline que extrae fondos, busca datos web, genera gráficos y construye la presentación con un solo comando. Además, ofrece una estructura de comandos CLI completa para gestionar documentos, añadir contenido, aplicar estilos y exportar a múltiples formatos. Está diseñado específicamente para entornos Windows con WPS 12+ y Python 3.10+.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yb2460/harness-anything/tree/master/cli_anything/wps/skills

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace cli-anything-wps?

Herramienta de línea de comandos para controlar WPS Office a través de la interfaz de automatización COM. Soporta WPS Writer (procesador de textos), WPS Calc (hojas de cálculo) y WPS Impress (presentaciones).

Requisitos previos

  • Sistema operativo Windows
  • WPS Office (instalado, versión 12.0+)
  • Python 3.10+
  • pywin32: pip install pywin32

Instalación

pip install -e .
cli-anything-wps --help

Generación automatizada de presentaciones basada en datos JSON ⭐ Flujo de trabajo principal para producción

Este es el modo más utilizado: buscar datos → generar gráficos con matplotlib → escribir JSON → generar con WPS COM en un solo paso.

Flujo completo (6 pasos)

1. Extraer fondo de plantilla: plantilla.pptx → template_bg.png (960x540)
2. WebSearch para datos: puntuaciones de admisión/ranking de materias/plan de admisión/datos de investigación
3. matplotlib genera gráficos: barras/pastel/líneas/barras horizontales/burbujas
4. Escribir data.json: 12-15 diapositivas con elementos[] (título ≤4 caracteres + separación ≥24pt)
5. python build_xxx.py: WPS COM construye diapositiva por diapositiva
6. Salida: formato doble PPTX + PDF

Secuencia de diapositivas estándar

S1 Portada → S2 Índice → S3-S10 Diapositivas de contenido (gráficos+tablas+tarjetas) → S11 Tarjeta de resumen → S12 Agradecimientos

Enrutamiento de tipos de elementos

typeUso
textCuadro de texto
imageImagen (incluye gráficos de matplotlib)
tableTabla
cards_2x3Tarjetas de colores 2 filas x 3 columnas
cards_1x4_infoTarjeta de estadísticas numéricas de 4 columnas
card_list_wideLista numerada de índice
tagline_barBarra de resumen al pie de la diapositiva

Restricciones clave ⚠️

  • Separación entre título y contenido: título y=14 h=40 (termina en y≈54), el primer elemento de contenido debe comenzar en y≥76-78 (separación ≥24pt)
  • Máximo 4 caracteres para el título, centrado, SimHei 40-44pt, color de marca, sin líneas decorativas
  • Comillas chinas en JSON: usar 「」 en lugar de "" para citas dentro del texto
  • Todos los elementos dentro del lienzo: 960×540, y+h≤518
  • WPS COM: Fill.ForeColor.RGB, SaveAs(path, 32) para exportar PDF
  • Limpiar antes de ejecutar: taskkill //F //IM wps.exe //T

Ejemplos de referencia

16 proyectos en el directorio WPS/:

ProyectoDiapositivasTema
Tsinghua Union/Lanzhou Univ/Tongji Med/HIT/Chongqing Univ/Nanhua Univ12Admisión a varias universidades
Sun Yat-sen Univ/USTC/UCAS15Admisión a universidades prestigiosas
Fudan Univ12Nuevas ingenierías + Facultad de Medicina
SUSTech Cancer Hospital12Programa conjunto de maestría y doctorado
PKU/Tsinghua/SUSTech/HUST/Zhejiang Univ City College9-14Introducción a varias universidades
# Ejemplo de ejecución completa
python -c "import zipfile; ..."  # Extraer plantilla
python gen_charts.py              # Generar gráficos
python -c "import json; json.load(open('data.json','r',encoding='utf-8'))"  # Validar JSON
taskkill //F //IM wps.exe //T
python build_xxx.py               # Construir PPTX+PDF

Estructura de comandos CLI

wps
├── document          # Gestión de documentos: new/open/save/info
├── writer            # Procesador de textos: add-paragraph/heading/list/table/image
├── calc              # Hojas de cálculo: set-cell/get-cell/set-range/merge-cells
├── impress           # Presentaciones: add-slide/remove-slide/set-content/add-element
├── style             # Estilos: create/modify/list/apply/remove
├── preset            # Preajustes de diseño: list/info/apply
├── export            # Exportar: render output.pptx -p pptx
└── session           # Sesión: status/undo/redo/history

Ejemplos de uso

# Crear documento
cli-anything-wps document new --type writer --name "Informe" -o report.json
cli-anything-wps --project report.json writer add-heading -t "Informe anual" -l 1
cli-anything-wps --project report.json export render report.docx -p docx

# Modo JSON (para uso con agentes)
cli-anything-wps --json document new --type writer --name "test"

Preajustes de diseño

PreajustePaleta de coloresEscenario de uso
academicAzul oscuro #1A3C8BDefensa académica/solicitud de fondos
consultantAzul oscuro #003366 + cian brillanteInformes de consultoría
businessAzul corporativo #005294Reuniones/presentaciones de trabajo
techCasi negro #0F1423Tecnología/IA/informes de datos

Revisión de calidad (5 dimensiones)

DimensiónElementos a revisarUmbral
visualJerarquía tipográfica/contraste/espacio en blanco70 puntos
pedagógicaArco narrativo/conocimientos previos75 puntos
correcciónOrtografía/terminología/desbordamiento80 puntos
paridadConsistencia PPTX/PDF85 puntos
contenidoPrecisión de datos/referencias90 puntos

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados