docx
SKILL.md
DOCX 创建、编辑与分析
概述
用户可能会要求你创建、编辑或分析 .docx 文件的内容。.docx 文件本质上是一个包含 XML 文件和其他资源的 ZIP 压缩包,你可以对其进行读取或编辑。针对不同的任务,有不同的工具和工作流可供选择。
工作流决策树
阅读/分析内容
请使用下方的“文本提取”或“原始 XML 访问”部分。
创建新文档
请使用“创建新的 Word 文档”工作流。
编辑现有文档
-
你自己的文档 + 简单的更改 使用“基础 OOXML 编辑”工作流。
-
他人的文档 使用 “红线修订工作流”(推荐的默认方式)。
-
法律、学术、商业或政府文档 必须使用 “红线修订工作流”。
阅读和分析内容
文本提取
如果你只需要读取文档的文本内容,应该使用 pandoc 将文档转换为 markdown。Pandoc 对保留文档结构提供了极佳的支持,并且可以显示修订痕迹:
# 将文档转换为带有修订痕迹的 markdown
pandoc --track-changes=all path-to-file.docx -o output.md
# 选项: --track-changes=accept/reject/all
使用 python-docx 创建文档
基础文档创建
from docx import Document
from docx.shared import Inches, Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.style import WD_STYLE_TYPE
document = Document()
# 添加标题
document.add_heading('文档标题', 0)
# 添加段落(支持格式化)
p = document.add_paragraph('这是一个普通段落,包含 ')
p.add_run('粗体').bold = True
p.add_run(' 和 ')
p.add_run('斜体').italic = True
p.add_run(' 文本。')
# 添加各级标题
document.add_heading('一级标题', level=1)
document.add_heading('二级标题', level=2)
# 添加列表
document.add_paragraph('无序列表项 1', style='List Bullet')
document.add_paragraph('无序列表项 2', style='List Bullet')
document.add_paragraph('有序列表项 1', style='List Number')
document.add_paragraph('有序列表项 2', style='List Number')
# 添加图片
document.add_picture('image.png', width=Inches(4))
# 保存文档
document.save('output.docx')
表格操作
from docx import Document
from docx.shared import Cm
document = Document()
# 创建表格
table = document.add_table(rows=1, cols=3)
table.style = 'Table Grid'
# 设置表头
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '序号'
hdr_cells[1].text = '名称'
hdr_cells[2].text = '描述'
# 添加数据行
data = [
('1', '项目A', '描述A'),
('2', '项目B', '描述B'),
('3', '项目C', '描述C'),
]
for num, name, desc in data:
row_cells = table.add_row().cells
row_cells[0].text = num
row_cells[1].text = name
row_cells[2].text = desc
document.save('table_demo.docx')
页眉页脚设置
from docx import Document
document = Document()
section = document.sections[0]
# 设置页眉
header = section.header
header_para = header.paragraphs[0]
header_para.text = "左侧文本\t中间文本\t右侧文本"
header_para.style = document.styles["Header"]
# 设置页脚
footer = section.footer
footer_para = footer.paragraphs[0]
footer_para.text = "第 X 页"
document.add_paragraph('正文内容...')
document.save('header_footer.docx')
自定义样式
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.style import WD_STYLE_TYPE
document = Document()
# 创建自定义段落样式
styles = document.styles
custom_style = styles.add_style('CustomHeading', WD_STYLE_TYPE.PARAGRAPH)
custom_style.font.name = 'Arial'
custom_style.font.size = Pt(16)
custom_style.font.bold = True
custom_style.font.color.rgb = RGBColor(0, 0, 128)
# 使用自定义样式
document.add_paragraph('使用自定义样式的标题', style='CustomHeading')
# 创建字符样式
char_style = styles.add_style('Highlight', WD_STYLE_TYPE.CHARACTER)
char_style.font.color.rgb = RGBColor(255, 0, 0)
char_style.font.bold = True
# 应用字符样式
p = document.add_paragraph('这段文字包含 ')
p.add_run('高亮文本', style='Highlight')
p.add_run(' 在中间。')
document.save('styled_doc.docx')
Weekly Installs
1
Repository
1837620622/supe…t-skillsFirst Seen
4 days ago
Security Audits
Installed on
amp1
cline1
openclaw1
qoder1
trae-cn1
opencode1