尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

用 skills 做 Office 自动化:第一次上手必踩的 6 个坑

用 skills 做 Office 自动化:第一次上手必踩的 6 个坑 用 skills 做 Office 自动化第一次上手必踩的 6 个坑【免费下载链接】skillsPublic repository for Agent Skills项目地址: https://gitcode.com/GitHub_Trending/skills3/skillsskills 仓库里 docx、pdf、pptx、xlsx 四个目录就是 Office 文档处理相关的技能包。每个包的结构一致一份 SKILL.md 写清任务路由和雷区scripts/下放可执行脚本。多数坑都直接写在 SKILL.md 里但容易被当成背景信息略过。下面按错法 → 对法 → 为什么拆开讲最容易被绕进去的几处。先说结论这些坑没有一个是语法错误全是文件能打开、结果却是错的。编辑现有 Word 文件别用 docx 库直接打开错法写 Node 脚本用docxnpm库打开已有 .docx 再改。对法docx 库只负责从零创建编辑现成文件走解包 → 改 XML → 重新打包这一点 skills/docx/ 的任务路由表里写得很明确.docx 本质就是 XML 的 ZIP 包。为什么要多一步Word 会把一句完整的话按修订 id、拼写标记等拆进多个w:rrun 里你在界面上能看到的短语在word/document.xml中往往不是一整段连续字符串。先用scripts/merge_runs.py把相邻、格式相同的 run 合并不改变内容和渲染文本才找得到。改完从解包目录内部重新 zip再用validate.py过一遍结构检查。Word 修订标记最容易漏标而不是标错错法在 XML 里手工包w:del/w:ins包完就以为完事。三个细节容易漏被删的文本必须写成w:delText写w:t不会进修订漏包时接受视图看起来完全正常肉眼看文件发现不了删整段要在段落标记的rPr里加 del 标记它的语义是并入下一段。对法改完跑validate.py out.docx --original doc.docx --author 署名它逐条报告哪些改动没包进w:ins/w:del。想要全部接受后的干净副本用accept_changes.py若结果里多出空编号项先别急着改文档——pandoc 的--track-changesaccept和这个脚本都可能不合并空段落那是视图工件回 XML 里确认段落状态再下结论。PDF 填表先查字段是否可填再谈坐标错法对着扫描出来的表单直接叠字。对法先跑check_fillable_fields.py。有可填字段就轻松一半extract_form_field_info.py导出字段清单写一份field_values.json交给fill_fillable_fields.py完成它还会校验你给的字段 id 和取值是否合法。没有可填字段才走注释路线也是最容易出错的路线用extract_form_structure.py从 PDF 结构里提取标签、横线、方框的精确坐标写fields.json填之前必须过check_bounding_boxes.py检查框重叠和框比字体还小这两类错误。扫描件提不出结构时用convert_pdf_to_images.py转图后裁切放大估坐标。整套坐标换算和降级流程在 skills/pdf/forms.md别自己现推。PPTX两类会悄悄损坏文件的写法错法一十六进制颜色带#或在 6 位色值后拼 alpha。pptxgenjs 会原样写进 XML产出打不开的文件。透明度要放对字段填充和图像用transparency0–100阴影用opacity0.0–1.0两边各忽略对方的设置。错法二坐标超出画布。默认布局 LAYOUT_16x9 是 10 英寸 × 5.625 英寸不是 13.3 英寸越界的坐标不会被裁剪图形只是不在幻灯片上报错都没有。对法图表一律addChart()用原生方式出堆叠柱状图的数据标签位置不能用outEnd同样会损坏文件。生成后跑一次scripts/office/validate.py上面这些图表毛病和 PowerPoint 拒收的 slide XML 缺陷都会逐条列出并附修法从模板来的文件记得带--original把模板自带的 schema 报错和真正的问题分开。XLSX重算报告零错误不等于数字对错法在 Python 里把合计算好直接写进单元格或者写完公式不做重算。openpyxl 把公式当纯字符串写入、不带缓存值重算之前 pandas 和load_workbook(data_onlyTrue)读到的全是 None重算入口就是 skills/xlsx/scripts/recalc.py它会重写文件并返回含total_errors的 JSON。两个最隐蔽的点。其一运行时 LibreOffice 不认 XLOOKUP、FILTER、UNIQUE 这类函数新版虽然能算但 openpyxl 产物没有溢出元数据只有区域左上角单元格有值而 recalc 照样报total_errors: 0——查表用 INDEX/MATCH排序去重放 Python 做。其二工作簿若含外部文件引用形如[1]Sheet!$B$2的公式openpyxl 保存会清掉缓存值重算时链接解析失败变成#NAME?recalc.py 会直接拒跑动手前先把那些单元格的原值抄出来。四个技能共用的一条底线能打开不等于对交付前做三件事schema 检查validate.py加--auto-repair可修常见问题转图看渲染——soffice.py --headless --convert-to pdf再用pdftoppm出图逐页看溢出、重叠、错位内容层用 pandoc 或 markitdown 快速过一遍查缺字、顺序和残留占位符。原因在于本文前面几类损坏——图表被 PowerPoint 丢弃、空段落残留、文字落在格子外——能否打开、能否渲染这一步都发现不了schema 检查和视觉检查各拦一部分缺一不可。如果你准备实际用这套技能第一步不是写脚本而是拿一个测试文件走通渲染链路soffice.py --headless --convert-to pdf加pdftoppm能出图说明 LibreOffice 和 Poppler 环境就绪后文所有看图验收才谈得上执行。【免费下载链接】skillsPublic repository for Agent Skills项目地址: https://gitcode.com/GitHub_Trending/skills3/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表