Matt Valenta

PLS Office Docs

辦公效率v1.0.0
作者:Matt Valenta更新於 2026-05-11pls-office-docs@clawhub_mattvalenta/pls-office-docs
檔案處理表格處理PDF 處理#Docs#Spreadsheets#Document#PDF

據 AlphaMoat 統計,截至 2026-09,PLS Office Docs 累計下載 2,772 次、獲 1 個星標,在全部 5,078 個 AI 技能中排名第 3,896 位,在「辦公效率」分類(435 個)中排名第 289 位。

累計安裝
206
累計下載
2772
星標
1
全站排名
#3,896
全站前 77% · 「辦公效率」前 67%
平台累計安裝累計下載星標評論
ClawHub ↗8827721-
SkillHub ↗20627391—

各平台的計數口徑不同,統計時間不一致。

這個技能是做什麼的

覆蓋文件、表格、簡報和 PDF 工作流,面向專業報告、演示材料與資料匯出。

資料釋出於 2026-10-27

可以用來做什麼

  • 生成或處理辦公文件

什麼時候用

  • 使用者需要生成報告、簡報或匯出資料時

示例提示詞

以下是根據技能文件生成的示例,不代表實際執行結果。

根據這些要點製作一份報告

月度資料趨勢

累計下載2772
1144201928932026-03 · 累計下載 12652026-05 · 累計下載 18942026-06 · 累計下載 20782026-07 · 累計下載 23942026-08 · 累計下載 25992026-09 · 累計下載 277226-0326-09
星標1
0122026-03 · 星標 12026-05 · 星標 12026-06 · 星標 12026-07 · 星標 12026-08 · 星標 12026-09 · 星標 126-0326-09

2026-09 起統計方法調整:同名技能按作者分別統計,並覆蓋全部技能。圖中虛線為調整前的月份,與之後的資料不直接比較,也不計算跨越調整的增長。

月份累計下載環比星標
2026-092772—1
2026-082599+8.6%1
2026-072394+15.2%1
2026-062078+9.7%1
2026-051894—1
2026-031265—1

SKILL.md 原文

以下是作者釋出的原始檔案,按純文字顯示,本站未做修改或稽核;其中的連結不可點選,命令請核實後再執行。抓取於 2026-10-23。

8.3 KB · ClawHub v1.0.0
---
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
展開全部(共 451 行)

| Format | Create | Read | Edit |
|--------|--------|------|------|
| PDF | `fpdf`, `reportlab` | `pdfplumber`, `pymupdf` | `pypdf` |
| DOCX | `python-docx` | `python-docx` | `python-docx` |
| XLSX | `openpyxl`, `pandas` | `openpyxl`, `pandas` | `openpyxl` |
| PPTX | `python-pptx` | `python-pptx` | `python-pptx` |

---

## PDF Operations

### Install

```bash
pip install fpdf reportlab pdfplumber pymupdf pypdf
```

### Create PDF

```python
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

```python
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

```python
import pdfplumber

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

### Merge PDFs

```python
from pypdf import PdfMerger

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

### Split PDF

```python
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

```bash
pip install python-docx
```

### Create Document

```python
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

```python
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

```python
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

```python
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

```python
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

```bash
pip install openpyxl pandas xlsxwriter
```

### Create Workbook

```python
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

```python
import pandas as pd

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

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

### Add Charts

```python
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

```python
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

```python
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

```bash
pip install python-pptx
```

### Create Presentation

```python
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

```python
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

```python
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

```python
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

```python
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

```python
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

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

「辦公效率」分類下的熱門技能

資料月份:2026-09 · 下載/星標/安裝數聚合自公開技能註冊庫(ClawHub、SkillHub),按月更新。口徑說明見資料方法。