โ† All skills
Tencent SkillHub ยท Productivity

PLS Office Docs

Create, read, edit, and extract content from PDF, DOCX, XLSX, and PPTX documents for professional reports, presentations, and data exports.

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Create, read, edit, and extract content from PDF, DOCX, XLSX, and PPTX documents for professional reports, presentations, and data exports.

โฌ‡ 0 downloads โ˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 28 sections Open source page

Office Docs - Professional Document Generation

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

Quick Reference

FormatCreateReadEditPDFfpdf, reportlabpdfplumber, pymupdfpypdfDOCXpython-docxpython-docxpython-docxXLSXopenpyxl, pandasopenpyxl, pandasopenpyxlPPTXpython-pptxpython-pptxpython-pptx

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)

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")

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")

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")

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")

Category context

Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
1 Docs
  • SKILL.md Primary doc