Token导航 LogoToken导航TokenDH.com
效率只读clawhub未标认证来源可访问clear审计通过

pls-office-docs请办公室文档

Agent Skill

用于辅助文档、README、Markdown、说明文和内容稿件的整理与改写。它适合让 Agent 提炼结构、补齐章节、统一术语、检查链接或把零散材料整理成可读文档。使用时应保留项目已有事实、命令和路径,不要把未确认的信息写成确定结论;涉及对外文案时,还需要控制语气,避免过度营销或夸大能力。

总安装

43,896

周安装

1,829

GitHub Stars

1

下载量

14,632
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:pls-office-docs(请办公室文档)
来源仓库:https://github.com/mattvalenta/pls-office-docs
安装命令:
openclaw skills install pls-office-docs
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install pls-office-docs

简介

创建、读取、编辑和提取 PDF、DOCX、XLSX 和 PPTX 文档中的内容,以用于专业报告、演示文稿和数据导出。

SKILL.md

name
office-docs
description
Generate and manipulate office documents (PDF, DOCX, XLSX, PPTX) for professional reports, presentations, and data exports. Use when: (1) Creating PDFs from text/images, (2) Generating Word documents, (3) Creating Excel spreadsheets with formulas, (4) Building PowerPoint presentations, (5) Extracting content from office documents.

Office Docs - Professional Document Generation

Comprehensive skill for creating and manipulating office documents. Handles PDF, DOCX, XLSX, and PPTX formats.

Quick Reference

FormatCreateReadEdit
PDFfpdf, reportlabpdfplumber, pymupdfpypdf
DOCXpython-docxpython-docxpython-docx
XLSXopenpyxl, pandasopenpyxl, pandasopenpyxl
PPTXpython-pptxpython-pptxpython-pptx

PDF Operations

Install

pip install fpdf reportlab pdfplumber pymupdf pypdf

Create PDF

from fpdf import FPDF

pdf = FPDF()
pdf.add_page()
pdf.set_font("Helvetica", size=12)
pdf.cell(0, 10, "Hello World", ln=True)
pdf.output("document.pdf")

Create PDF with Images

from fpdf import FPDF

pdf = FPDF()
pdf.add_page()
pdf.image("photo.jpg", x=10, y=10, w=100)
pdf.output("with_image.pdf")

Extract Text from PDF

import pdfplumber

with pdfplumber.open("document.pdf") as pdf:
    for page in pdf.pages:
        print(page.extract_text())

Merge PDFs

from pypdf import PdfMerger

merger = PdfMerger()
merger.append("file1.pdf")
merger.append("file2.pdf")
merger.write("merged.pdf")
merger.close()

Split PDF

from pypdf import PdfReader, PdfWriter

reader = PdfReader("document.pdf")
writer = PdfWriter()

for i in range(0, 5):  # First 5 pages
    writer.add_page(reader.pages[i])

with open("split.pdf", "wb") as f:
    writer.write(f)

DOCX (Word) Operations

Install

pip install python-docx

Create Document

from docx import Document

doc = Document()
doc.add_heading("Report Title", level=0)
doc.add_paragraph("This is a paragraph.")
doc.add_paragraph("Bold text", style="Intense Quote")
doc.save("report.docx")

Add Table

from docx import Document

doc = Document()
table = doc.add_table(rows=3, cols=2)
table.style = "Table Grid"

# Header row
hdr_cells = table.rows[0].cells
hdr_cells[0].text = "Name"
hdr_cells[1].text = "Value"

# Data rows
row = table.rows[1].cells
row[0].text = "Revenue"
row[1].text = "$1,000,000"

doc.save("table.docx")

Add Image

from docx import Document
from docx.shared import Inches

doc = Document()
doc.add_picture("chart.png", width=Inches(5))
doc.save("with_image.docx")

Read Document

from docx import Document

doc = Document("report.docx")
for para in doc.paragraphs:
    print(para.text)

for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)

Add Bullet List

from docx import Document

doc = Document()
doc.add_paragraph("Items:", style="List Bullet")
doc.add_paragraph("First item", style="List Bullet")
doc.add_paragraph("Second item", style="List Bullet")
doc.save("bullets.docx")

XLSX (Excel) Operations

Install

pip install openpyxl pandas xlsxwriter

Create Workbook

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = "Sheet1"

# Headers
ws["A1"] = "Name"
ws["B1"] = "Value"

# Data
ws["A2"] = "Revenue"
ws["B2"] = 1000000

# Formula
ws["A3"] = "Total"
ws["B3"] = "=SUM(B2:B2)"

wb.save("data.xlsx")

Create with Pandas

import pandas as pd

df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Charlie"],
    "Score": [85, 92, 78]
})

df.to_excel("scores.xlsx", index=False)

Add Charts

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

# Data
ws["A1"] = "Month"
ws["B1"] = "Sales"
data = [("Jan", 100), ("Feb", 150), ("Mar", 200)]
for i, (month, sales) in enumerate(data, 2):
    ws[f"A{i}"] = month
    ws[f"B{i}"] = sales

# Chart
chart = BarChart()
chart.add_data(Reference(ws, min_col=2, min_row=1, max_row=4))
chart.set_categories(Reference(ws, min_col=1, min_row=2, max_row=4))
chart.title = "Monthly Sales"
ws.add_chart(chart, "D1")

wb.save("chart.xlsx")

Read Workbook

from openpyxl import load_workbook

wb = load_workbook("data.xlsx")
ws = wb.active

for row in ws.iter_rows(values_only=True):
    print(row)

Format Cells

from openpyxl.styles import Font, PatternFill, Alignment
from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# Bold header
ws["A1"] = "Header"
ws["A1"].font = Font(bold=True, size=14)

# Background color
ws["A1"].fill = PatternFill(start_color="4472C4", fill_type="solid")
ws["A1"].font = Font(color="FFFFFF", bold=True)

# Center align
ws["A1"].alignment = Alignment(horizontal="center")

wb.save("formatted.xlsx")

PPTX (PowerPoint) Operations

Install

pip install python-pptx

Create Presentation

from pptx import Presentation
from pptx.util import Inches, Pt

prs = Presentation()

# Title slide
slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Presentation Title"
subtitle.text = "Subtitle here"

prs.save("presentation.pptx")

Add Bullet Slide

from pptx import Presentation
from pptx.util import Inches

prs = Presentation()
slide_layout = prs.slide_layouts[1]  # Title and Content
slide = prs.slides.add_slide(slide_layout)

title = slide.shapes.title
title.text = "Key Points"

body = slide.placeholders[1]
tf = body.text_frame
tf.text = "First point"

p = tf.add_paragraph()
p.text = "Second point"
p.level = 1  # Indent

prs.save("bullets.pptx")

Add Image

from pptx import Presentation
from pptx.util import Inches

prs = Presentation()
slide_layout = prs.slide_layouts[5]  # Blank
slide = prs.slides.add_slide(slide_layout)

slide.shapes.add_picture("chart.png", Inches(1), Inches(1), width=Inches(8))

prs.save("with_image.pptx")

Add Table

from pptx import Presentation
from pptx.util import Inches

prs = Presentation()
slide_layout = prs.slide_layouts[5]  # Blank
slide = prs.slides.add_slide(slide_layout)

rows, cols = 4, 3
table = slide.shapes.add_table(rows, cols, Inches(1), Inches(1), Inches(8), Inches(3)).table

# Set headers
table.cell(0, 0).text = "Name"
table.cell(0, 1).text = "Q1"
table.cell(0, 2).text = "Q2"

# Set data
table.cell(1, 0).text = "Alice"
table.cell(1, 1).text = "100"
table.cell(1, 2).text = "150"

prs.save("table.pptx")

Common Workflows

Report Generation

from docx import Document
from docx.shared import Inches

doc = Document()
doc.add_heading("Monthly Report", level=0)
doc.add_paragraph("Generated automatically by agent.")

# Add summary table
table = doc.add_table(rows=3, cols=2)
table.style = "Table Grid"
table.rows[0].cells[0].text = "Metric"
table.rows[0].cells[1].text = "Value"
table.rows[1].cells[0].text = "Revenue"
table.rows[1].cells[1].text = "$1,000,000"
table.rows[2].cells[0].text = "Users"
table.rows[2].cells[1].text = "5,000"

doc.save("report.docx")

Data Export to Excel

import pandas as pd
from openpyxl.chart import BarChart, Reference
from openpyxl import load_workbook

# Create data
df = pd.DataFrame({
    "Date": pd.date_range("2026-01-01", periods=30),
    "Revenue": [1000 + i * 50 for i in range(30)]
})

# Save with formatting
df.to_excel("daily_revenue.xlsx", index=False)

# Add chart
wb = load_workbook("daily_revenue.xlsx")
ws = wb.active

chart = BarChart()
chart.add_data(Reference(ws, min_col=2, min_row=1, max_row=31))
chart.set_categories(Reference(ws, min_col=1, min_row=2, max_row=31))
chart.title = "Daily Revenue"
ws.add_chart(chart, "D1")

wb.save("daily_revenue.xlsx")

PDF Report with Charts

from fpdf import FPDF
import matplotlib.pyplot as plt

# Create chart image
plt.figure(figsize=(10, 6))
plt.bar(["Jan", "Feb", "Mar"], [100, 150, 200])
plt.title("Monthly Sales")
plt.savefig("chart.png")
plt.close()

# Create PDF
pdf = FPDF()
pdf.add_page()
pdf.set_font("Helvetica", size=16)
pdf.cell(0, 10, "Monthly Sales Report", ln=True, align="C")
pdf.image("chart.png", x=10, y=30, w=190)
pdf.output("report.pdf")

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

83.82%
按下载量换算12,265

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

未展示

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills