返回顶部
w

word-document-organizerWord文档整理

智能整理Word文档,自动格式化、生成目录、统一样式,支持学术/商务/极简模板

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
744
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

word-document-organizer

Word 文档整理助手

智能识别文档结构,自动应用标准化排版,生成专业目录,让文档整理一键完成。

触发条件

当用户提出以下请求时激活此技能:
  • - 整理word文档
  • 格式化文档
  • 生成文档目录
  • 统一文档样式
  • 排版优化
  • 修复word格式
  • 规范文档格式
  • word排版

参数定义

document_path(必需)

  • - 类型: string
  • 描述: Word文档的完整路径(支持.docx格式)
  • 示例: C:/Users/Desktop/报告.docx, /home/user/docs/论文.docx

operations(可选,默认: all)

  • - 类型: array[string]
  • 描述: 要执行的操作列表
  • 可选值:
- format: 格式化段落(行距、间距、字体统一) - toc: 生成文档目录 - styles: 应用标准样式模板 - cleanup: 清理空段落和冗余格式 - all: 执行所有操作(默认)

style_template(可选,默认: academic)

  • - 类型: string
  • 描述: 样式模板类型
  • 可选值:
- academic: 学术模板(宋体、层级分明,适合论文/报告) - business: 商务模板(微软雅黑、现代简洁,适合商业文档) - minimal: 极简模板(Arial、紧凑排版,适合笔记/草稿) - default: 默认模板(通用设置)

output_path(可选)

  • - 类型: string
  • 描述: 输出文件路径(默认覆盖原文件,建议指定新路径保留原文件)
  • 示例: C:/Users/Desktop/报告_整理版.docx

执行流程

步骤1: 环境检查与备份

bash #!/bin/bash

检查文件存在性

if [ ! -f ${document_path} ]; then echo 错误:文件不存在 ${document_path} echo 请检查路径是否正确,或文件是否被移动/删除 exit 1 fi

检查文件扩展名

if [[ ! ${document_path} =~ \.(docx|doc)$ ]]; then echo 错误:仅支持 .docx 或 .doc 格式 exit 1 fi

创建时间戳备份

backuppath=${documentpath}.backup.$(date +%Y%m%d_%H%M%S) cp ${documentpath} ${backuppath} echo 已创建备份: ${backup_path}

步骤2: 安装Python依赖

bash #!/bin/bash

检查python-docx是否已安装

python3 -c import docx 2>/dev/null || pip3 install python-docx -q echo 依赖检查完成

步骤3: 执行文档整理(核心Python脚本)

python #!/usr/bin/env python3

-- coding: utf-8 --

from docx import Document
from docx.shared import Pt, Inches, RGBColor
from docx.enum.text import WDALIGNPARAGRAPH
from docx.oxml.ns import qn
import sys
import re
import os

获取参数

docpath = ${documentpath} outputpath = ${outputpath} if ${outputpath} else docpath template = ${style_template} operations = [op.strip() for op in ${operations}.split(,)] if ${operations} else [all]

print(f处理文件: {doc_path})
print(f执行操作: {operations})
print(f使用模板: {template})

加载文档

try: doc = Document(doc_path) except Exception as e: print(f无法打开文档: {e}) print(提示:请确保文档未被Microsoft Word占用(关闭Word后重试)) sys.exit(1)

模板配置

TEMPLATES = { academic: { h1size: 18, h2size: 16, h3size: 14, bodysize: 12, h1font: 黑体, h2font: 黑体, body_font: 宋体, linespacing: 1.5, spaceafter: 6 }, business: { h1size: 16, h2size: 14, h3size: 12, bodysize: 11, h1font: 微软雅黑, h2font: 微软雅黑, body_font: 微软雅黑, linespacing: 1.5, spaceafter: 6 }, minimal: { h1size: 14, h2size: 12, h3size: 11, bodysize: 10.5, h1font: Arial, h2font: Arial, body_font: Arial, linespacing: 1.15, spaceafter: 3 }, default: { h1size: 16, h2size: 14, h3size: 12, bodysize: 12, h1font: 宋体, h2font: 宋体, body_font: 宋体, linespacing: 1.5, spaceafter: 6 } }

config = TEMPLATES.get(template, TEMPLATES[academic])
changes_log = []

操作1: 格式化

if format in operations or all in operations: print(正在格式化文档...) count = 0 for para in doc.paragraphs: para.paragraphformat.linespacing = config[line_spacing] para.paragraphformat.spaceafter = Pt(config[space_after]) para.paragraphformat.spacebefore = Pt(0)

if not para.style.name.startswith(Heading):
for run in para.runs:
run.font.name = config[body_font]
run.element.rPr.rFonts.set(qn(w:eastAsia), config[bodyfont])
run.font.size = Pt(config[body_size])
count += 1

changes_log.append(f格式化 {count} 个段落)

操作2: 应用样式

if styles in operations or all in operations: print(正在应用样式模板...) title_count = 0

for para in doc.paragraphs:
text = para.text.strip()
if not text:
continue

if re.match(r^[第][一二三四五六七八九十\d]+[章\s]|^[\d]+\s*[、..\s]|^[((][一二三四五六七八九十]+[))], text):
para.style = doc.styles[Heading 1]
for run in para.runs:
run.font.name = config[h1_font]
run.element.rPr.rFonts.set(qn(w:eastAsia), config[h1font])
run.font.size = Pt(config[h1_size])
run.font.bold = True
run.font.color.rgb = RGBColor(0, 0, 0)
title_count += 1

elif re.match(r^\d+\.\d+[\s.、]|^[((][\d一二三四五六七八九十]+[))], text):
para.style = doc.styles[Heading 2]
for run in para.runs:
run.font.name = config[h2_font]
run.element.rPr.rFonts.set(qn(w:eastAsia), config[h2font])
run.font.size = Pt(config[h2_size])
run.font.bold = True
title_count += 1

elif re.match(r^\d+\.\d+\.\d+|^[((]\d+[))], text):
para.style = doc.styles[Heading 3]
for run in para.runs:
run.font.size = Pt(config[h3_size])
run.font.bold = True
title_count += 1

changeslog.append(f识别并格式化 {titlecount} 个标题)

操作3: 生成目录

if toc in operations or all in operations: print(正在生成目录...)

toc_entries = []
for para in doc.paragraphs:
if para.style.name.startswith(Heading):
level = int(para.style.name[-1]) if para.style.name[-1].isdigit() else 1
toc_entries.append((level, para.text.strip()))

if toc_entries:
first_para = doc.paragraphs[0]
toctitle = firstpara.insertparagraphbefore(目录)
toc_title

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 word-document-organizer-1776173171 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 word-document-organizer-1776173171 技能

通过命令行安装

skillhub install word-document-organizer-1776173171

下载

⬇ 下载 word-document-organizer v1.0.1(免费)

文件大小: 4.4 KB | 发布时间: 2026-4-15 13:38

v1.0.1 最新 2026-4-15 13:38
word-document-organizer 1.0.1

- 修正文案,将部分错误提示由“❌ 错误”调整为“错误”
- 控制台输出中的备份和检查信息更加简洁
- 无功能新增或行为变更

此版本为微调文案与提示信息,行为未变。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部