360 Secure SkillHub
360 安全技能中心

Office-Editor

面向 .docx、.xlsx、.pptx 文件的创建与修改 Skill:先用只读方式检查 python-docx、openpyxl、python-pptx(可选 pandas、pillow)是否可用,缺失时直接报告而不自动安装;按任务选择示例脚本或参考文档,编辑已有文件默认另存为新文件。

noah-wu66
noah-wu66
热度 90.64
最近更新 2026-05-11 17:30:52
分类:效率依赖:代码执行 / 读写文件应用场景:工作流 / 报告撰写 / 演示设计 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add office-editor
Metadata
name
office-editor
description
Create or modify Word (.docx), Excel (.xlsx), and PowerPoint (.pptx) files. Use when the user mentions Office, Word, Excel, PowerPoint, docx, xlsx, pptx, spreadsheets, presentations, or document export. Check dependencies first, and if a core library is missing, report it directly instead of installing anything automatically.
user-invocable
true
metadata
{"openclaw":{"emoji":"📄"}}

Office Document Handling

Use this skill for .docx, .xlsx, and .pptx files. Identify the file type first, check the required dependencies next, and then decide whether to create a new file or modify an existing one.

Follow These Rules First

  1. Confirm the target format first: Word uses python-docx, Excel uses openpyxl, and PowerPoint uses python-pptx.
  2. Check whether the required dependency can be imported. If something is missing, tell the user exactly which package is required. Do not run pip, pip3, python -m pip, sudo, or similar install commands automatically.
  3. When editing an existing file, preserve the original by default and save the result as a new file. Only overwrite the original if the user explicitly asks for that.
  4. Do structural edits before visual fine-tuning. Avoid writing a large amount of low-value formatting code upfront.
  5. Only open the matching document in references/ when an advanced API is needed. Do not load every reference file into context at once.

Dependency Tiers

Core Dependencies

  • python-docx: for Word documents.
  • openpyxl: for Excel workbooks.
  • python-pptx: for PowerPoint presentations.

Optional Dependencies

  • pandas: only needed when converting between DataFrames and Excel.
  • pillow: only needed when inserting images into Excel.

Check Dependencies

Use a read-only import check like this. If the check fails, stop implementation and report the missing package(s) directly.

import importlib

PACKAGE_MAP = {
    "docx": "python-docx",
    "openpyxl": "openpyxl",
    "pptx": "python-pptx",
    "pandas": "pandas",
    "PIL": "pillow",
}

missing = []
for module_name, package_name in PACKAGE_MAP.items():
    try:
        importlib.import_module(module_name)
    except ModuleNotFoundError:
        missing.append(package_name)

print(missing)

Choose what to check based on the task:

  • .docx tasks: check docx
  • .xlsx tasks: check openpyxl
  • .pptx tasks: check pptx
  • DataFrame-related Excel tasks: also check pandas
  • Excel image tasks: also check PIL

Handle Word Documents

Use python-docx for .docx files.

Create a New File

from docx import Document

document = Document()
document.add_heading("Document Title", level=1)
document.add_paragraph("This is a paragraph.")
document.save("new_doc.docx")

Modify an Existing File

from docx import Document

document = Document("existing_doc.docx")
document.add_paragraph("Appended content")
document.save("updated_doc.docx")

Read These Resources First

  • Core API summary: {baseDir}/references/docx_api_summary.md
  • Create example: {baseDir}/scripts/create_basic_doc.py
  • Edit example: {baseDir}/scripts/edit_existing_doc.py

Handle Excel Workbooks

Use openpyxl for .xlsx files.

Create a New File

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = "Data"
ws["A1"] = "Hello"
ws.append(["Data 1", "Data 2", "Data 3"])
wb.save("new_workbook.xlsx")

Modify an Existing File

from openpyxl import load_workbook

wb = load_workbook("existing_workbook.xlsx")
ws = wb["Sheet1"]
ws["A1"] = "Updated value"
wb.save("updated_workbook.xlsx")

Read These Resources First

  • Create example: {baseDir}/scripts/create_basic_workbook.py
  • Charts: {baseDir}/references/xlsx_charts.md
  • Advanced features: {baseDir}/references/xlsx_features.md
  • DataFrame integration: {baseDir}/references/xlsx_pandas.md

Handle PowerPoint Presentations

Use python-pptx for .pptx files.

Create a New File

from pptx import Presentation

prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "Slide Title"
slide.placeholders[1].text = "This is the content placeholder."
prs.save("new_presentation.pptx")

Modify an Existing File

from pptx import Presentation

prs = Presentation("existing_presentation.pptx")
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "New Slide"
slide.placeholders[1].text = "Additional content"
prs.save("updated_presentation.pptx")

Read These Resources First

  • API quick reference: {baseDir}/references/pptx_api_reference.md
  • Chart guide: {baseDir}/references/pptx_chart_guide.md
  • Full example: {baseDir}/scripts/create_presentation.py

Resource Selection Rules

  • Basic Word file creation only: start with {baseDir}/scripts/create_basic_doc.py
  • Modify an existing Word file: start with {baseDir}/scripts/edit_existing_doc.py
  • Basic Excel creation only: start with {baseDir}/scripts/create_basic_workbook.py
  • Excel charts or conditional formatting: read {baseDir}/references/xlsx_charts.md or {baseDir}/references/xlsx_features.md first
  • DataFrame, CSV to Excel, or worksheet analysis: confirm pandas is available, then read {baseDir}/references/xlsx_pandas.md
  • Basic PowerPoint generation only: start with {baseDir}/scripts/create_presentation.py
  • PowerPoint charts: read {baseDir}/references/pptx_chart_guide.md first

Output Rules

  • Always save to a concrete target filename. Do not leave changes only in memory.
  • If the user does not provide a filename, use a clear default such as report.docx, budget.xlsx, or deck.pptx.
  • For edits to existing files, default to updated_*.ext to avoid accidental overwrites.