cli-anything-libreoffice 是做什麼的?
一個有狀態的命令列介面,用於文件編輯,可產生真正的 ODF 檔案(ZIP 壓縮檔內含 XML)。專為 AI 代理與進階使用者設計,無需 GUI 或安裝 LibreOffice 即可建立與操作 Writer、Calc 及 Impress 文件。
安裝
此 CLI 作為 cli-anything-libreoffice 套件的一部分安裝:
pip install cli-anything-libreoffice
必要條件:
- Python 3.10+
- 系統上必須安裝 libreoffice
使用方式
基本指令
# 顯示說明
cli-anything-libreoffice --help
# 啟動互動式 REPL 模式
cli-anything-libreoffice
# 建立新專案
cli-anything-libreoffice project new -o project.json
# 以 JSON 輸出執行(供代理使用)
cli-anything-libreoffice --json project info -p project.json
REPL 模式
當不帶子指令執行時,CLI 會進入互動式 REPL 工作階段:
cli-anything-libreoffice
# 以 Tab 補全與歷史紀錄功能互動輸入指令
指令群組
Document
文件管理指令。
| 指令 | 說明 |
|---|---|
new | 建立新文件 |
open | 開啟專案 JSON,或匯入現有的 Office/ODF 檔案 |
import | 將現有的 Office/ODF 檔案匯入為專案 JSON |
import-formats | 列出支援的匯入格式 |
save | 儲存目前文件 |
info | 顯示文件資訊 |
profiles | 列出可用的頁面設定檔 |
json | 列印原始專案 JSON |
Writer
Writer(文書處理)指令。
| 指令 | 說明 |
|---|---|
add-paragraph | 在文件中新增段落 |
add-heading | 在文件中新增標題 |
add-list | 在文件中新增清單 |
add-table | 在文件中新增表格 |
add-page-break | 新增分頁符號 |
remove | 依索引移除內容項目 |
list | 列出所有內容項目 |
set-text | 設定內容項目的文字 |
Calc
Calc(試算表)指令。
| 指令 | 說明 |
|---|---|
add-sheet | 新增工作表 |
remove-sheet | 依索引移除工作表 |
rename-sheet | 重新命名工作表 |
set-cell | 設定儲存格值 |
get-cell | 取得儲存格值 |
list-sheets | 列出所有工作表 |
Impress
Impress(簡報)指令。
| 指令 | 說明 |
|---|---|
add-slide | 在簡報中新增投影片 |
remove-slide | 依索引移除投影片 |
set-content | 更新投影片的標題及/或內容 |
list-slides | 列出所有投影片 |
add-element | 在投影片中新增元素 |
Style Group
樣式管理指令。
| 指令 | 說明 |
|---|---|
create | 建立新樣式 |
modify | 修改現有樣式 |
list | 列出所有樣式 |
apply | 將樣式套用至內容項目(僅限 Writer) |
remove | 移除樣式 |
Export Group
匯出/轉譯指令。
| 指令 | 說明 |
|---|---|
presets | 列出匯出預設值 |
preset-info | 顯示預設值詳細資料 |
render | 將文件匯出為檔案 |
Session
工作階段管理指令。
| 指令 | 說明 |
|---|---|
status | 顯示工作階段狀態 |
undo | 復原上一個操作 |
redo | 重做上一個被復原的操作 |
history | 顯示復原歷史紀錄 |
範例
建立新專案
建立新的 LibreOffice 專案檔案。
cli-anything-libreoffice project new -o myproject.json
# 或以 JSON 輸出供程式使用
cli-anything-libreoffice --json project new -o myproject.json
互動式 REPL 工作階段
啟動支援復原/重做的互動式工作階段。
cli-anything-libreoffice
# 互動輸入指令
# 使用 'help' 檢視可用指令
# 使用 'undo' 和 'redo' 瀏覽歷史紀錄
匯出專案
將專案匯出為最終輸出格式。
cli-anything-libreoffice --project myproject.json export render output.pdf --overwrite
狀態管理
CLI 會維護工作階段狀態,包含:
- 復原/重做:最多 50 層的歷史紀錄
- 專案持久性:將專案狀態儲存/載入為 JSON
- 匯入現有檔案:將 ODF/DOCX/XLSX/PPTX 及相關格式轉換為可編輯的專案 JSON
- 工作階段追蹤:記錄修改與變更
輸出格式
所有指令皆支援雙重輸出模式:
- 人類可讀(預設):表格、色彩、格式化文字
- 機器可讀(
--json旗標):結構化 JSON,供代理使用
# 人類可讀輸出
cli-anything-libreoffice project info -p project.json
# 供代理使用的 JSON 輸出
cli-anything-libreoffice --json project info -p project.json
供 AI 代理使用
以程式方式使用此 CLI 時:
- 一律使用
--json旗標 取得可剖析輸出 - 檢查回傳碼 - 0 表示成功,非零表示錯誤
- 剖析 stderr 以取得失敗時的錯誤訊息
- 對所有檔案操作使用絕對路徑
- 先將現有 Office 檔案匯入為 JSON:
document import input.docx -o work.json - 匯出操作後確認輸出檔案已存在
更多資訊
- 完整文件:請參閱套件中的 README.md
- 測試涵蓋範圍:請參閱套件中的 TEST.md
- 方法論:請參閱 cli-anything-plugin 中的 HARNESS.md
版本
1.0.0