ODT File Manager & Editor

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 Python 和 odfdo 库在本地创建、解析和编辑 ODT(OpenDocument Text)文件,适用于用户要求创建、编辑、读取、更新、追加、检查...

ODT 文件管理器

功能概述

ODT 文件管理器是一项面向实际任务的技能,主要用于本地 OTT 文档创建和编辑由 odfdo.. .;Library : odfdo v3.20+ ——积极维护,单端(lxml), 完整 OTF 支持.;

核心要点

  • Required Setup.;
  • Skill Bundaries.TH。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

使用与执行

使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

ODT 文件管理器

基于 odfdo 实现的本地 ODT 文档创建与编辑功能。

依赖库odfdo v3.20+ — 活跃维护中,仅依赖单个包(lxml),完整支持 ODF 格式。

必要配置

pip install odfdo

能力边界

该技能为纯本地运行——无网络访问能力,且对 NextCloud 完全无感知。

如需配合 NextCloud 工作流,请搭配使用 nextcloud-aio-oc

步骤 技能
在 NextCloud 中查找文件 nextcloud-aio-ocnode scripts/nextcloud.js files search
下载二进制 ODT 文件 nextcloud-aio-ocpython3 scripts/files_binary.py download
编辑 / 创建 ODT odt-filemgr-ocpython3 scripts/odt_tool.py ...
上传二进制 ODT 文件 nextcloud-aio-ocpython3 scripts/files_binary.py upload

脚本路径位于:~/.openclaw/skills/odt-filemgr-oc/scripts/

工作流示例

编辑现有 ODT(NextCloud 场景)

NC=~/.openclaw/skills/nextcloud-aio-oc/scripts
ODT=~/.openclaw/skills/odt-filemgr-oc/scripts

# 1. 下载
python3 $NC/files_binary.py download "/Documents/MyDoc.odt" /tmp/MyDoc.odt

# 2. 检查结构
python3 $ODT/odt_tool.py inspect /tmp/MyDoc.odt

# 3. 编辑内容
python3 $ODT/odt_tool.py append /tmp/MyDoc.odt --text "New Section" --heading 2
python3 $ODT/odt_tool.py append /tmp/MyDoc.odt --text "Section content here."

# 4. 上传回 NextCloud
python3 $NC/files_binary.py upload /tmp/MyDoc.odt "/Documents/MyDoc.odt"

新建 ODT 并推送至 NextCloud

# 1. 本地创建
python3 $ODT/odt_tool.py create /tmp/NewDoc.odt --title "Q1 Report"

# 2. 添加内容
python3 $ODT/odt_tool.py append /tmp/NewDoc.odt --text "Summary" --heading 2
python3 $ODT/odt_tool.py append /tmp/NewDoc.odt --text "Results were positive across all metrics."

# 3. 推送至 NextCloud
python3 $NC/files_binary.py upload /tmp/NewDoc.odt "/Documents/Q1 Report.odt"

本地编辑 ODT(不涉及 NextCloud)

python3 $ODT/odt_tool.py inspect   myfile.odt
python3 $ODT/odt_tool.py to-text   myfile.odt
python3 $ODT/odt_tool.py append    myfile.odt --text "Added paragraph."
python3 $ODT/odt_tool.py replace   myfile.odt --find "draft" --sub "final"
python3 $ODT/odt_tool.py set-meta  myfile.odt --title "Final Report"

odt_tool.py 命令说明

命令 说明
inspect 显示元数据 + 段落 / 标题 / 表格结构
to-text 按文档顺序提取全部文本内容
create [--title T] 创建空白 ODT(可选设置一级标题 H1)
append --text T [--heading N] [--style S] 追加标题(N=1–6)或段落
replace --find F --sub S [--regex] 查找并替换文本
set-meta [--title T] [--subject S] [--description D] 更新文档元数据
set-font --font F [--size N] [--no-preserve-mono] 统一设置所有样式层级的字体(默认样式 + 所有命名样式 / 内联样式的覆盖)
set-outline --numbered | --plain 切换标题编号模式(1.1.1 或无编号)
merge-styles --template T 应用模板 ODT 中的所有样式

自定义 Python 编辑

如需进行表格编辑、复杂样式调整或多步操作,可直接嵌入 Python 脚本:

from odfdo import Document, Header, Paragraph

doc = Document("/tmp/file.odt")
body = doc.body

# 按顺序读取全部内容
for child in body.children:
    if isinstance(child, Header):
        print(f"H{child.level}: {child.inner_text}")
    elif isinstance(child, Paragraph) and child.inner_text.strip():
        print(f"[{child.style}]: {child.inner_text}")

# 添加内容
body.append(Header(2, "New Section"))
body.append(Paragraph("Content here."))

# 表格编辑
table = body.get_table_by_name("MyTable")
table.set_value(0, 0, "Updated cell")

doc.save("/tmp/file.odt", pretty=True)

关于 odfdo 全量 API(表格、列表、文本跨度、样式、元数据等),请参阅 REFERENCE.md。

关键规则

  1. 编辑前务必先 inspect:对未查看过的文件,必须先执行 inspect 确认结构。
  2. 临时文件:工作过程中请使用 /tmp/ 目录存放中间文件;上传完成后及时清理。
  3. 样式处理:对于含颜色、间距、边框等复杂样式的文档,建议通过 merge-styles 加载已有模板,而非从零生成样式。set-fontset-outline 可安全应用于任意文档,无需依赖模板。

故障排查

错误 修复方法
ModuleNotFoundError: odfdo pip install odfdo
zipfile.BadZipFile 文件已损坏或并非合法 ODT —— 请重新下载
标题未正确显示为 H1 请使用 Header(1, "text"),而非 Paragraph("text", style="Heading 1")
Collabora 中字体仍显示为 Liberation ODT 每条样式规则包含 6 项字体属性。旧实现仅设置其中 3 项(style:font-name-*)。Collabora 渲染时依赖 fo:font-family —— 当前版本已确保全部 6 项均被正确设置。请重新运行 set-font
字体名称必须完全匹配 LibreOffice/Collabora 的字体名称区分大小写:"Noto Sans""noto sans"
set-outline 修改未生效 部分文档通过段落样式覆盖了编号设置 —— 此时应改用 merge-styles 加载一个干净的模板

相关专题

更多
Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

2026.09.21

0

12

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

0

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

0

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.1万人学习