Communitygithub.com

cli-anything-wps

Ferramenta de linha de comando para controlar o WPS Office via interface COM — suporta WPS Writer, Calc e Impress, com geração automatizada de apresentações PPT orientada por dados JSON.

O que é cli-anything-wps?

O cli-anything-wps é uma ferramenta de linha de comando que permite controlar o WPS Office (Word, Planilha e Apresentação) através da interface de automação COM do Windows. Ela é especialmente útil para desenvolvedores e profissionais que desejam automatizar a criação de documentos, planilhas e apresentações de slides a partir de dados estruturados em JSON. A funcionalidade principal é a geração de apresentações PPT orientadas por dados, onde o usuário coleta dados da web, gera gráficos matplotlib e produz um arquivo JSON que descreve cada slide (com texto, imagens, tabelas e cartões visuais). A ferramenta suporta um fluxo de trabalho de 6 etapas, incluindo extração de fundo de template, busca de dados, geração de gráficos, escrita do JSON, construção COM e exportação em PPTX e PDF. Ela também oferece comandos CLI para gerenciamento de documentos, inserção de parágrafos/tabelas/imagens e aplicação de estilos predefinidos (acadêmico, consultor, negócios, tecnologia). Requer Windows, WPS Office 12+, Python 3.10+ e a biblioteca pywin32. A qualidade do resultado é avaliada em cinco dimensões: visual, pedagógica, revisão, paridade e substância.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que cli-anything-wps faz?

Ferramenta de linha de comando para controlar o WPS Office via interface de automação COM. Suporta WPS Writer (texto), WPS Calc (planilha) e WPS Impress (apresentação).

Pré-requisitos

  • Sistema Operacional Windows
  • WPS Office (instalado, versão 12.0 ou superior)
  • Python 3.10+
  • pywin32: pip install pywin32

Instalação

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

Geração de PPT orientada por dados JSON ⭐ Fluxo de trabalho principal em produção

Este é o modo mais utilizado: Pesquise dados → Gere gráficos matplotlib → Escreva JSON → Gere com WPS COM em um único comando.

Fluxo completo (6 etapas)

1. Extrair fundo do modelo: modelo.pptx → template_bg.png (960x540)
2. WebSearch para dados: notas de corte/rankings de disciplinas/planos de matrícula/dados científicos
3. matplotlib gera gráficos: barras/pizza/linha/barras horizontais/bolhas
4. Escrever data.json: 12-15 slides com elements[] (título ≤4 caracteres + espaçamento ≥24pt)
5. python build_xxx.py: WPS COM constrói slide por slide
6. Saída: PPTX + PDF em formato duplo

Ordem padrão dos slides

S1 Capa → S2 Índice → S3-S10 Conteúdo (gráficos+tabelas+cartões) → S11 Cartão de resumo → S12 Agradecimentos

Roteamento de tipos de elementos

typeUso
textCaixa de texto
imageImagem (incluindo gráficos matplotlib)
tableTabela
cards_2x3Cartões coloridos 2 linhas x 3 colunas
cards_1x4_infoCartões de estatísticas numéricas (4 colunas)
card_list_wideLista numerada de índice
tagline_barBarra de resumo no rodapé do slide

Restrições importantes ⚠️

  • Espaçamento entre título e conteúdo: título y=14 h=40 (termina em y≈54), o primeiro elemento de conteúdo deve começar em y≥76-78 (gap ≥24pt)
  • Título com no máximo 4 caracteres, centralizado, SimHei 40-44pt, cor da marca, sem linhas decorativas
  • Aspas chinesas no JSON: use 「」 em vez de "" em citações no texto
  • Nenhum elemento ultrapassa o slide: 960×540, y+h≤518
  • WPS COM: Fill.ForeColor.RGB, SaveAs(path, 32) para exportar PDF
  • Limpeza antes da execução: taskkill //F //IM wps.exe //T

Exemplos de referência

WPS/ diretório com 16 projetos:

ProjetoPáginasTema
Tsinghua Xiehe/Lanzhou University/Tongji Medical School/HIT/Chongqing University/Nanhua University12Matrículas de cada universidade
Sun Yat-sen University/USTC/UCAS15Matrículas de universidades de elite
Fudan University12Novas engenharias + Faculdade de Medicina
SUSTech Cancer Hospital12Mestrado/doutorado conjunto
PKU/Tsinghua/SUSTech/HUST/Zhejiang University City College9-14Apresentações institucionais
# Exemplo completo de execução
python -c "import zipfile; ..."  # Extrair modelo
python gen_charts.py              # Gerar 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

Estrutura de comandos CLI

wps
├── document          # Gerenciamento de documentos: new/open/save/info
├── writer            # Texto: add-paragraph/heading/list/table/image
├── calc              # Planilha: set-cell/get-cell/set-range/merge-cells
├── impress           # Apresentação: add-slide/remove-slide/set-content/add-element
├── style             # Estilos: create/modify/list/apply/remove
├── preset            # Predefinições de design: list/info/apply
├── export            # Exportar: render output.pptx -p pptx
└── session           # Sessão: status/undo/redo/history

Exemplos de uso

# Criar documento
cli-anything-wps document new --type writer --name "Relatório" -o report.json
cli-anything-wps --project report.json writer add-heading -t "Relatório Anual" -l 1
cli-anything-wps --project report.json export render report.docx -p docx

# Modo JSON (uso com agente)
cli-anything-wps --json document new --type writer --name "teste"

Predefinições de design

PredefiniçãoPaleta de coresCenário de uso
academicAzul escuro #1A3C8BDefesa acadêmica/solicitação de bolsa
consultantAzul escuro #003366 + ciano claroRelatório de consultoria
businessAzul corporativo #005294Reuniões/apresentações corporativas
techQuase preto #0F1423Tecnologia/IA/relatórios de dados

Revisão de qualidade (5 dimensões)

DimensãoItens verificadosLimiar
visualHierarquia de fontes/contraste/espaçamento70 pontos
pedagogiaArco narrativo/conhecimento prévio75 pontos
revisãoOrtografia/termos/estouro80 pontos
paridadeConsistência PPTX/PDF85 pontos
substânciaPrecisão dos dados/citações90 pontos

Individual skills in this repo

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

Habilidades Relacionadas