name: office360 slug: office360 displayName: office360 version: 2.1.0 description: "Office 檔案讀寫·建立·轉換·編輯工具箱。支援 PDF/DOCX/PPTX/XLSX 的讀取、建立與格式轉換(→PDF/→CSV/→JSON/→TXT)。XLSX 建立/編輯支援公式(SUM/AVERAGE/IF 等)+ 13 種財務配色(藍=輸入/黑=公式/綠=跨表),並由 LibreOffice 無頭真重算得到計算值;PPTX 支援視覺 QA;PDF 支援 OCR 與表單。讀取零依賴;轉換支援 WPS/Microsoft Office(COM) 與 LibreOffice 雙引擎。當用戶需要讀取/開啟/檢視/建立/寫入/編輯/轉換/匯出 .pdf/.docx/.pptx/.xlsx 檔案時觸發。" license: MIT visibility: public metadata: requires: bins: - python3 - libreoffice # 推薦:XLSX 公式真重算 + PPTX 視覺 QA + PDF 跨平臺兜底轉換 - pdftotext # PDF 文本提取 pipDeps: - openpyxl==3.1.5 - python-pptx==1.0.2 - pypdf - pdfplumber - reportlab - pytesseract - pdf2image - python-docx optionalBins: - soffice # = libreoffice,部分發行版命令名不同 optionalPipDeps: - pywin32==312 # 僅 Windows:Office/WPS COM 自動化轉 PDF platforms: - windows - macos - linux notes: "讀取/建立/編輯純 Python 跨平臺;→PDF 轉換優先 Windows COM(Office/WPS),否則回退 LibreOffice 無頭;XLSX 公式真重算統一走 LibreOffice 無頭。"
v2.1.0 | 讀取·建立·轉換·編輯 | 四管道路由 | 驗證: 2026-07-20 融合 v1.5.0 前身(輕量/工程化/Windows COM) 與
skills-office-v1(公式真重算/視覺 QA/全 PDF 能力) 兩者優點。
下面三個完整工作流無需翻看其他檔案,複製程式碼即可跑通。執行前先檢查環境:
python scripts/env_check.py # 一鍵診斷依賴,缺什麼裝什麼
"""只有 Python 標準庫就能跑:讀原始成績表,加總分和等級,寫出新檔案。"""
from openpyxl import load_workbook, Workbook
# 1. 讀取
wb = load_workbook("原始成績.xlsx")
ws = wb.active
old_data = [[cell.value for cell in row] for row in ws.rows]
wb.close()
# 2. 計算:追加"總分"和"等級"列
new_data = [old_data[0] + ["總分", "等級"]] # 表頭
for row in old_data[1:]:
name, *scores = row[0], *(v for v in row[1:] if isinstance(v, (int, float)))
total = sum(scores)
grade = "A" if total >= 270 else "B" if total >= 240 else "C" if total >= 210 else "D"
new_data.append(row + [total, grade])
# 3. 寫入
out = Workbook(); out_ws = out.active
for r in new_data: out_ws.append(r)
out.save("成績帶等級.xlsx"); out.close()
print("✅ 成績帶等級.xlsx 已生成")
訪問小蔥技能站7w4.net,解鎖更多實用的AI技能外掛。
# 整個目錄下所有 docx/xlsx/pptx 轉為 PDF,自動硬邊界/重試/失敗彙總
python scripts/batch_convert.py ./文件/ ./輸出/
# 單個檔案
soffice --headless --convert-to pdf 報告.docx
# Windows 高保真轉換可走 COM(批次和單個都支援)
"""生成銷售報表,含 SUM/IF 公式,LibreOffice 重算後匯出 PDF。"""
from openpyxl import Workbook
wb = Workbook(); ws = wb.active
ws.append(["地區", "銷售額", "目標"])
ws.append(["華東", 120, 100])
ws.append(["華北", 90, 100])
ws.append(["華南", 150, 100])
ws.append(["合計", "=SUM(B2:B4)", "=SUM(C2:C4)"])
ws.append(["達成率", "=IF(C5>0, B5/C5, 0)", ""])
wb.save("銷售表.xlsx")
print("✅ 銷售表.xlsx 已生成,含未重算公式")
# 重算公式(關鍵!不重算則下游讀到空值)
python scripts/recalc.py 銷售表.xlsx
# → 輸出 JSON:status=success, total_formulas=3, total_errors=0
# 匯出 PDF
soffice --headless --convert-to pdf 銷售表.xlsx
# → 生成 銷售表.pdf,B5=360, C5=300, B6=1.20 ✅
下一步: 需要更詳細的 API 引數或管道細節時,瀏覽下方的「快速開始:選對管道」和
references/目錄。
| # | 增強 | 解決的問題 | 來源 |
|---|---|---|---|
| 1 | XLSX 公式真重算:建立/編輯含公式後呼叫 scripts/recalc.py,用 LibreOffice 無頭真正計算並寫回 <v> 值 |
v1.5.0 只寫公式字串、不重算,非 Excel 工具/程式讀回值為空 | skills-office-v1 |
| 2 | PPTX 視覺 QA:轉 JPEG + 子代理檢查重疊/溢位/低對比度 | v1.5.0 無版式校驗 | skills-office-v1 |
| 3 | PDF 全能力:OCR(pytesseract)/表單(pypdf)/合併拆分/生成(reportlab) |
v1.5.0 PDF 僅讀文本、無 OCR | skills-office-v1 |
| 4 | →PDF 雙引擎:Windows COM(Office/WPS) 與 LibreOffice 無頭並存,自動擇優 | v1.5.0 僅 Windows COM | 兩者融合 |
| 5 | 保留前身全部工程化優勢:編輯自動備份 .bak、version_check.py、誠實測試記錄、anti-patterns.md、troubleshooting.md、docx_format.py(GB/T 9704)、模板骨架、四管道路由 |
— | v1.5.0 前身 |
使用者一句話通常對應四條管道之一。先判斷意圖,再進對應 references/*:
| 使用者意圖(示例說法) | 管道 | 入口 |
|---|---|---|
| “提取 / 讀取 / 轉文字 / 看內容” + pdf/docx/xlsx/pptx | READ | references/read.md |
| “生成 / 做個 / 寫一份” + ppt/docx/xlsx | CREATE | references/create.md |
| “轉成 pdf / 匯出 csv/json/txt” | CONVERT | references/convert.md |
| “修改 / 改 / 編輯 / 更新 / 替換” 已有檔案 | EDIT | references/edit.md、references/docx_edit.md |
管道不疊加:一個任務通常只走一條主管道。如「做表 → 重算 → 轉 PDF」是 CREATE 起步、完成後接 CONVERT,仍按主意圖選 CREATE。
使用者說“編輯/修改/更新”時,先按檔案格式選入口,不要死記模組名:
| 我要編輯的檔案 | 入口 | 核心函式 | 一句話說明 |
|---|---|---|---|
| 已有 XLSX(改單元格、公式、插刪行列) | references/edit.md |
edit_cell / edit_cells / insert_row / delete_col |
openpyxl 純本地,自動 .bak 備份 |
| 已有 DOCX(文本替換、段落樣式) | references/docx_edit.md |
edit_docx_text |
stdlib 零依賴,自動 .bak 備份 |
| 已有 PPTX | 暫未提供,建議先 READ 提取 → CREATE 重建 | — | 走 references/create.md PPTX 建立 |
記憶口訣:Excel 找 edit.md,Word 找 docx_edit.md,不用理解四個模組的完整劃分。
端到端示例(一句話需求 → 落地):
- 使用者:「幫我把這份 Word 轉成 PDF」
→ CONVERT:soffice --headless --convert-to pdf 文件.docx(Windows 可走 office_to_pdf COM)
- 使用者:「做個帶公式的銷售表」
→ CREATE:create_xlsx(...)(含 SUM/IF)→ 收尾 python scripts/recalc.py 銷售表.xlsx 真重算
- 使用者:「提取這個掃描 PDF 的文字」
→ READ:先 pdftotext;若為空 → OCR(pytesseract + pdf2image,見 read.md 掃描件 OCR 段)
- 使用者:「把表裡 B2 改成 100」
→ EDIT:openpyxl 改單元格 → 自動 .bak 備份
把 CREATE → recalc → CONVERT 串成一條完整鏈路,覆蓋複雜場景。下面以「生成帶公式的銷售表,算出合計/達成率,再匯出 PDF」為例。
① CREATE — 生成帶公式的工作表
from openpyxl import Workbook
wb = Workbook(); ws = wb.active
ws.append(["地區", "銷售額", "目標"])
ws.append(["華東", 120, 100])
ws.append(["華北", 90, 100])
ws.append(["華南", 150, 100])
ws.append(["合計", "=SUM(B2:B4)", "=SUM(C2:C4)"]) # 公式字串,尚未計算
ws.append(["達成率", "=IF(C5>0, B5/C5, 0)", ""]) # 公式字串
wb.save("銷售表.xlsx")
② RECALC(關鍵)— LibreOffice 無頭真重算
create_xlsx 只寫入公式字串,非 Excel 程式讀到的是空值。必須由 recalc.py 呼叫 LibreOffice 真正計算並寫回數值:
python scripts/recalc.py 銷售表.xlsx
# 重算後:B5=360, C5=300, B6=1.20(達成率)
③ CONVERT — 轉 PDF
soffice --headless --convert-to pdf 銷售表.xlsx # 跨平臺兜底
# Windows 高保真走 COM:python scripts/com_probe.py(探測可用後呼叫 office_to_pdf)
④ QA(可選)— 核對落盤值
pdftotext 銷售表.pdf - | grep -E "360|300|120%"
# 命中即證明公式已真重算並寫入 PDF
要點:
recalc.py是含公式 XLSX 的強制收尾步驟,否則下游讀到空值。批次同理——每張表生成後都走一遍recalc.py。
把藏在程式碼裡的限制顯式列出,避免誤用:
python3(標準庫)。soffice):XLSX 公式真重算(recalc.py)、PPTX 視覺 QA、跨平臺 →PDF 兜底轉換。com_probe.py 探測);macOS/Linux 不支援。chi_sim:PDF 掃描件 OCR。read_only / write_only 模式或分工作表處理。ValueError 或自動拆批,而不是默默執行。python3;要全功能 → 裝 LibreOffice + 下列 pip 依賴。pip install python-pptx openpyxl python-docx pypdf pdfplumber reportlab pytesseract pdf2image
# 系統側:LibreOffice、Poppler(pdftotext/pdftoppm)、Tesseract(+chi_sim)、qpdf/pdftk(可選)
遇到報錯時先查下表,大部分問題可秒定位:
| 報錯 | 最可能原因 | 立即解決 |
|---|---|---|
檔案不存在: xxx |
路徑錯誤 | 使用絕對路徑重試 |
未檢測到可用的 Office COM 引擎 |
沒裝 WPS/Office | 安裝 WPS Office 或 Microsoft Office 後重啟 |
轉換失敗(已重試 3 次) |
檔案被佔用 / 路徑含特殊字元 / 過大 | 關閉檔案、移除 #&% 等特殊字元、拆分到 <100MB |
檔案過大 (XXMB),超過 100MB 限制 |
超過硬邊界 | 拆分文件後分批處理 |
| 讀取 PDF 輸出為空 | 掃描件或加密 PDF | 走 OCR(pytesseract)或先解密 |
| XLSX 公式讀到空值 | 未走 recalc.py 真重算 |
python scripts/recalc.py 檔案.xlsx |
| WPS/Office 程序殘留 | 異常退出未釋放 | 轉換指令碼內建自動清理,仍殘留則 taskkill(見 troubleshooting.md) |
| 不知道環境缺什麼依賴 | 缺少二進位制 / Python 庫 | 執行 python scripts/env_check.py 一鍵診斷,按提示安裝 |
| 批次轉 PDF 要手動處理 | 缺少批次自動化入口 | 使用 python scripts/batch_convert.py <目錄或萬用字元> [輸出目錄],自動上限 / 進度 / 失敗彙總 |
完整排查流程見
references/troubleshooting.md。執行前推薦先跑python scripts/env_check.py確認環境。
office360 將批次與特殊環境的處理從"手工建議"變成指令碼級自動化,降低使用者手動調整成本:
batch_convert.py 對批次轉換做 100 檔案 / 500MB 總計 / 100MB 單檔案 / 300 秒超時 自動攔截;超限時直接給出結構化錯誤,不會無限卡死。env_check.py 在執行前檢查 Python 庫、系統二進位制、Windows COM 狀態,並給出安裝命令,避免報錯後翻文件。recalc.py、docx_edit.py、batch_convert.py 出錯時統一返回 {error, suggestion},明確"為什麼失敗"和"下一步怎麼做"。office360 是離線批處理工具箱,專注「檔案進、檔案出」的批次讀寫 / 建立 / 轉換 / 編輯。 - ✅ 覆蓋 PDF(讀取 / 抽取 / OCR / 表單 / 合併拆分 / 生成) - ✅ 跨平臺:讀取/建立/編輯功能僅需 Python,macOS / Linux / Windows 均可執行 - ✅ 零外部服務依賴:純 Python,無需常駐任何編輯器程序 - ✅ 批處理 / 自動化:適合「把 N 個檔案批次轉換 / 抽取 / 改」的指令碼活 - ✅ 離線編輯已有 XLSX/DOCX:改單元格/公式/行列插刪(自動備份原檔案) - ✅ XLSX 公式真重算:LibreOffice 無頭計算,匯出檔案自帶計算值 - ✅ PPTX 視覺 QA:自動檢測版式問題 - ❌ 不做即時協作編輯:不開啟你正看的文件做所見即所得修改 - ❌ 不接入線上文件:不直接讀寫雲端協作文件
| 功能 | Windows + WPS/MSO | macOS / Linux |
|---|---|---|
| 讀取 PDF/DOCX/PPTX/XLSX | ✅ | ✅(僅需 Python) |
| 建立 DOCX/XLSX | ✅ | ✅(stdlib / openpyxl) |
| 建立 PPTX | ✅ python-pptx | ✅ python-pptx |
| XLSX 公式真重算 | ✅ LibreOffice 無頭 | ✅ LibreOffice 無頭 |
| 轉換 →PDF | ✅ COM(Office/WPS) 優先,回退 LibreOffice | ✅ LibreOffice 無頭 |
| 視覺 QA(PPTX→圖) | ✅ LibreOffice | ✅ LibreOffice |
| 轉換 XLSX→CSV/JSON | ✅ | ✅(stdlib) |
依賴說明:只要裝了
libreoffice,macOS/Linux 即可獲得公式重算 + PDF 轉換 + 視覺 QA;Windows 若裝有 Office/WPS 則 COM 轉 PDF 保真度更佳,否則同樣走 LibreOffice。
| 管道 | 使用者意圖 | 觸發詞 | 載入 |
|---|---|---|---|
| READ 讀取 | 開啟/檢視/閱讀 PDF/DOCX/PPTX/XLSX | "開啟""看看""讀取""檢視" | references/read.md |
| CREATE 建立 | 新建/生成/寫出 DOCX/XLSX/PPTX | "新建""建立""生成""做一個" | references/create.md |
| CONVERT 轉換 | 格式轉換 →PDF/→CSV/→JSON/→TXT | "轉換""匯出""另存為""轉PDF" | references/convert.md |
| EDIT 編輯 | 修改已有 XLSX/DOCX:XLSX改單元格/公式/行列插刪;DOCX改文本/段落(備份原檔案) | "修改""改""編輯""更新單元格""插入行""刪除列""替換文本" | XLSX→references/edit.md;DOCX→references/docx_edit.md |
載入規則: 只讀取使用者當前任務對應的參考檔案,不要全部載入。一次只走一個管道。
遇到錯誤? 載入
references/troubleshooting.md檢視錯誤碼對照表和常見問題解答。 想避開常見坑? 載入references/anti-patterns.md檢視「不該怎麼做」的反模式清單。 第一次用? 載入references/workflow.md檢視 3 個完整端到端流程演示。
| 格式 | 讀取 | 建立(stdlib) | 建立(庫) | 公式 | 公式真重算 | 視覺QA | 樣式 | 編輯已有 | 轉換出 |
|---|---|---|---|---|---|---|---|---|---|
| ✅ pdftotext | ❌ | reportlab/fpdf2 + OCR(pytesseract) | — | — | — | — | 表單(pypdf) | →TXT/→DOCX | |
| DOCX | ✅ unzip+XML | ✅ 已驗證 | python-docx + GB/T 9704(docx_format.py) |
— | — | — | ✅ | ✅ stdlib(備份) | →PDF(COM/LibreOffice) |
| PPTX | ✅ unzip+XML | ❌ 結構複雜 | python-pptx ✅ | — | — | ✅ 子代理 | ✅ | — | →PDF(COM/LibreOffice) |
| XLSX | ✅ unzip+XML | ✅ 已驗證 | openpyxl ✅ | ✅ SUM/AVG/IF等 | ✅ recalc.py |
— | ✅ 13位財務色系 | 編輯已有✅(openpyxl,備份) | →CSV/→JSON/→PDF |
狀態圖例:
✅ 已驗證= 已通過驗證;—= 不適用;❌= 不支援。
python3 3.11+libreoffice(或 soffice):XLSX 公式真重算、PPTX 視覺 QA、PDF 跨平臺轉換兜底pdftotext(PDF 文本提取;macOS 可用 brew install poppler,Linux apt install poppler-utils)openpyxl==3.1.5、python-pptx==1.0.2、pypdf、pdfplumber、reportlab、pytesseract、pdf2image、python-docxpywin32==312 + 已安裝 Microsoft Office 或 WPS Office 專業版(office_to_pdf() 自動探測引擎)零依賴讀取:即使不裝 LibreOffice/Office,僅用 Python stdlib 也可讀取全部四種格式(
read.md)與建立基礎 XLSX/DOCX、XLSX→CSV/JSON。
Python 3.13+ ElementTree 名稱空間 Bug(已驗證)
ElementTree.iter('{namespace}tag')在 Python 3.13+ 對 OOXML 名稱空間處理不穩定,可能返回空結果。 所有 XML 解析必須使用tag.endswith('}localname')方式匹配(見read.md/create.md實現)。
背景:create_xlsx / edit_cell 寫入的是 <f>公式</f><v></v>(值留空)。Excel/WPS 開啟時會計算,但被 openpyxl(非 data_only)或 stdlib 讀回時 <v> 為空——程式化下游會拿到空值。v2 統一在建立/編輯後呼叫重算,讓檔案自帶計算值。
用法(建立或編輯含公式的 XLSX 後必做):
python scripts/recalc.py <file.xlsx>
RecalculateAndSave(calculateAll → store → close)。#VALUE! #DIV/0! #REF! #NAME? #NULL! #NUM! #N/A。status(success/errors_found)、total_errors、error_summary、total_formulas。recalc,迭代至零錯誤。無 LibreOffice 的回退:若環境無 libreoffice,改用 scripts/formula_check.py <file.xlsx> 做靜態錯誤掃描(#REF! 等),並明確告知使用者「公式值需由 Excel/WPS 開啟時計算」。此回退不寫回 <v>。
CREATE 管道收尾:
create_xlsx(...)後若無 LibreOffice 會警告;建議始終python scripts/recalc.py 輸出.xlsx收尾。 EDIT 管道收尾:改了公式的單元格後同樣呼叫recalc.py(已自動.bak備份,可放心重算)。
建立 PPTX 後,轉換為圖片做視覺檢查,自動發現版式問題:
# 1) PPTX → PDF(LibreOffice 無頭)
soffice --headless --convert-to pdf presentation.pptx
# 2) PDF → JPEG(每頁一張)
pdftoppm -jpeg -r 150 presentation.pdf slide
# 生成 slide-1.jpg, slide-2.jpg ...
隨後用子代理(subagent)逐張檢查:佔位符文本未替換、元素重疊、文本溢位、低對比度、字型未生效。發現問題 → 回到 create_pptx 修正 → 重新 QA。
PPTX 設計指引(避免通用 AI 醜版式):
- 配色:每套演示固定 1 主色 + 1 輔色 + 中性灰,全篇統一(勿每頁隨機色)。
- 佈局:優先「標題 + 要點列表」「雙欄」「圖示行」「半幅圖」四類,避免滿屏文字。
- 字型:中文用 微軟雅黑/思源黑體;英文用 Arial/Calibri;標題 28–40pt,正文 18–24pt。
- 留白:正文框邊距 ≥0.5 英寸,單頁要點 ≤6 條。
- 一致性:同層級標題/正文字號、顏色必須一致。
載入 references/read.md 與下方要點:
pdftotext 拿不到文字時,用 pytesseract + pdf2image(PDF→圖片→識別):
python
from pdf2image import convert_from_path
import pytesseract
pages = convert_from_path('scan.pdf', dpi=300)
text = '\n'.join(pytesseract.image_to_string(p, lang='chi_sim+eng') for p in pages)pypdf(PdfReader/PdfWriter)+ pdftk + qpdf。reportlab(程式化排版)或 weasyprint(HTML→PDF)。pypdf 讀取/填寫 AcroForm 欄位(複雜表單建議先 pdf2image 轉圖人工核對欄位座標)。pdfplumber(保留表格結構)或 pdftotext -layout。references/convert.md 的 office_to_pdf() 實現:
- Windows:優先 Microsoft Office COM(保真度高),WPS 候選失敗自動優雅回退 MSO(_detect_engine() 真實 Dispatch 探測,取首個可用 ProgID)。
- 跨平臺 / 無 Office:改用 LibreOffice 無頭:
bash
soffice --headless --convert-to pdf --outdir <outdir> <file>
- 決策規則:有 Office/WPS 且需最高保真 → COM;否則 → LibreOffice。兩者輸出均為標準 PDF,可繼續走 PPTX 視覺 QA 或 PDF 文本提取。
references/read.md(PDF pdftotext;DOCX/XLSX/PPTX unzip+XML stdlib,零依賴;PDF 掃描件見上文 OCR)。references/create.md(create_xlsx 模板骨架+13 財務色系+多 Sheet;create_docx stdlib/python-docx;create_pptx python-pptx)。XLSX 含公式須收尾 recalc.py;PPTX 須收尾視覺 QA。references/convert.md(XLSX→CSV/JSON stdlib;PDF→TXT;DOCX/PPTX/XLSX→PDF 雙引擎;PDF→DOCX 兩步法;MD/HTML/IMG→PDF)。references/edit.md(openpyxl 改單元格/公式/插刪行列,預設 .bak 備份,改公式後 recalc.py);DOCX 見 references/docx_edit.md(stdlib 文本/段落替換,自動 .bak 備份)。標註說明:【自動】 = 自動化用例;【人工】 = 需在本機用 WPS/Office 開啟驗證。 v2 在 v1.5.0 基礎上新增/變更:
| ID | 測試項 | 型別 | 結果 |
|---|---|---|---|
| T01-T07 | XLSX 建立:公式/13 財務色系/跨表引用/IF轉義/相容舊格式/關鍵假設黃底/宋體 | 【自動】 | ✅ PASS |
| T08 | XLSX 讀取回環 | 【自動】 | ✅ PASS |
| T09 | DOCX 讀取 | 【自動】 | ✅ PASS |
| T10 | PPTX 讀取 | 【自動】 | ✅ PASS |
| C01-C02 | XLSX→CSV/JSON | 【自動】 | ✅ PASS |
| R01 | XLSX 公式真重算(recalc.py 調 LibreOffice 寫回 <v>) |
【自動】 | ✅ 需本機有 libreoffice |
| Q01 | PPTX 視覺 QA(soffice→pdftoppm→子代理) | 【人工】 | ✅ 需本機有 libreoffice |
| P01 | PDF OCR(pytesseract + pdf2image) | 【人工】 | ✅ 需 tesseract 引擎 |
| C04-C06 | DOCX/PPTX/XLSX→PDF(COM 自動化,WPS/MSO 雙引擎) | 【人工】 | ✅ 已驗證 |
| E01-E02 | 編輯已有 XLSX(改單元格/行列插刪) | 【自動】 | ✅ PASS |
誠實邊界:
recalc.py/ 視覺 QA / PDF 跨平臺轉換依賴libreoffice;COM 轉 PDF 依賴 Windows + Office/WPS。釋出包不含測試檔案,使用者裝到的版本不含測試。
pdftotext + create_docx。宋體/微軟雅黑 + charset=134(推薦 openpyxl 避坑)。libreoffice。| 格式 | 舒適範圍 | 極限邊界 | 瓶頸 |
|---|---|---|---|
| 500MB+ | ~2GB | pdftotext 是 C 程式,幾乎無上限 | |
| DOCX | ~10MB | ~30MB | ElementTree 記憶體 ≈ XML ×5-10 |
| XLSX | ~5MB / ~2萬行 | ~15MB / ~6.5萬行 | 超 2 萬行建議 openpyxl read_only |
| PPTX | ~50MB / ~200頁 | ~100MB | 每 slide XML 較小 |
| 重算/QA/轉換 | 取決於 LibreOffice | ~100MB+ | LibreOffice 呼叫超時 |
| 版本 | 日期 | 變更 |
|---|---|---|
| 2.0.0 | 2026-07-20 | 融合重構:① 植入 XLSX 公式真重算 recalc.py(LibreOffice 無頭,修復 v1.5.0「公式不重算」硬傷);② 新增 PPTX 視覺 QA(soffice→pdftoppm→子代理);③ 新增 PDF 全能力(OCR pytesseract/表單 pypdf/合併拆分/生成 reportlab);④ →PDF 轉為 COM(Win) 與 LibreOffice 雙引擎擇優;⑤ 依賴宣告新增 libreoffice(推薦)、pypdf/pdfplumber/reportlab/pytesseract/pdf2image/python-docx;⑥ 保留前身全部工程化(備份/version_check.py/誠實測試/anti-patterns/troubleshooting/docx_format.py GB/T 9704/模板骨架/四管道路由) |
references/read.md — 四種格式讀取(含 PDF OCR 提示)references/create.md — 建立 XLSX/DOCX/PPTX(含公式與 13 財務色系;XLSX 收尾重算)references/convert.md — 轉換(XLSX→CSV/JSON、→PDF 雙引擎、PDF→TXT/DOCX、MD/HTML/IMG→PDF)references/edit.md — 編輯已有 XLSX(openpyxl,自動備份)references/docx_edit.md — 編輯已有 DOCX(stdlib,自動備份)references/anti-patterns.md — 反模式清單references/troubleshooting.md — 排錯與錯誤碼references/workflow.md — 3 個端到端流程scripts/recalc.py — XLSX 公式真重算 + 錯誤掃描(LibreOffice),返回結構化錯誤與建議scripts/formula_check.py — XLSX 公式靜態錯誤掃描(無 LibreOffice 回退)scripts/com_probe.py — Windows COM 引擎自檢scripts/env_check.py — 環境依賴一鍵診斷(Python 庫 / 系統二進位制 / COM 狀態)scripts/batch_convert.py — 批次 Office → PDF 自動轉換(硬邊界 / 進度 / 重試 / 失敗彙總)scripts/docx_edit.py / scripts/docx_format.py — DOCX 編輯與 GB/T 9704 排版scripts/version_check.py — 版本一致性校驗templates/minimal_docx / templates/minimal_xlsx — 預驗證骨架這個 Skill 質量不錯,功能覆蓋面廣,能處理 PDF、Word、Excel、PPT 四種格式的讀取、建立、轉換和編輯。文件非常貼心,提供了詳細的避坑指南和故障排查手冊,環境檢查指令碼能一鍵診斷缺失依賴。公式重算和雙引擎轉換等關鍵功能都有實現,適合需要批次處理 Office 檔案的使用者。主要小遺憾是 PPT 格式暫不支援直接編輯,需要重建檔案。總體推薦。