Skip to content

Latest commit

 

History

History
646 lines (477 loc) · 39.1 KB

File metadata and controls

646 lines (477 loc) · 39.1 KB

OfficeCLI

OfficeCLI は世界初にして最高の、AI エージェント向けに設計された Office スイートです。

あらゆる AI エージェントに Word、Excel、PowerPoint の完全な制御権を — たった一行のコードで。

オープンソース。単一バイナリ。Office のインストール不要。依存関係ゼロ。全プラットフォーム対応。

エージェントフレンドリーなレンダリングエンジンを内蔵 — エージェントは自分が作ったものを "見る" ことができ、Office 不要。.docx / .xlsx / .pptx を HTML または PNG にレンダリングし、"レンダリング → 見る → 修正" のループはバイナリが動くあらゆる場所で完結します。

GitHub Release License

English | 中文 | 日本語 | 한국어

💬 コミュニティ: Discord

AionUi で OfficeCLI を使った PPT 作成プロセス

AionUi で OfficeCLI を使った PPT 作成プロセス

PowerPoint プレゼンテーション

OfficeCLI デザインプレゼン (PowerPoint) OfficeCLI ビジネスプレゼン (PowerPoint) OfficeCLI テクノロジープレゼン (PowerPoint)
OfficeCLI 宇宙プレゼン (PowerPoint) OfficeCLI ゲームプレゼン (PowerPoint) OfficeCLI クリエイティブプレゼン (PowerPoint)

Word 文書

OfficeCLI 学術論文 (Word) OfficeCLI プロジェクト提案書 (Word) OfficeCLI 年次報告書 (Word)

Excel スプレッドシート

OfficeCLI 予算管理 (Excel) OfficeCLI 成績管理 (Excel) OfficeCLI 売上ダッシュボード (Excel)

上記の文書はすべて AI エージェントが OfficeCLI を使って全自動で作成 — テンプレートなし、手動編集なし。

AI エージェント向け — 一行で開始

これを AI エージェントのチャットに貼り付けるだけ — スキルファイルを自動で読み込み、インストールを完了します:

curl -fsSL https://officecli.ai/SKILL.md

これだけです。スキルファイルがエージェントにバイナリのインストール方法と全コマンドの使い方を教えます。

一般ユーザー向け

オプション A — GUI: AionUi をインストール — 自然言語で Office 文書を作成・編集できるデスクトップアプリ。内部で OfficeCLI が動いています。やりたいことを説明するだけで、AionUi がすべて処理します。

オプション B — CLI: GitHub Releases からお使いのプラットフォーム用バイナリをダウンロードして、以下を実行:

officecli install

バイナリを PATH にコピーし、検出されたすべての AI コーディングエージェント(Claude Code、Cursor、Windsurf、GitHub Copilot など)に officecli スキルを自動インストールします。エージェントはすぐに Office 文書の作成・読み取り・編集が可能になります。追加設定は不要です。

開発者向け — 30秒でライブ体験

# 1. インストール(macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash
# Windows (PowerShell): irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex

# 2. 空の PowerPoint を作成
officecli create deck.pptx

# 3. ライブプレビューを開始 — ブラウザで http://localhost:26315 が開きます
officecli watch deck.pptx

# 4. 別のターミナルを開いてスライドを追加 — ブラウザが即座に更新されます
officecli add deck.pptx / --type slide --prop title="Hello, World!"

これだけです。addsetremove コマンドを実行するたびに、プレビューがリアルタイムで更新されます。どんどん試してみてください — ブラウザがあなたのライブフィードバックループです。

クイックスタート

# プレゼンテーションを作成してコンテンツを追加
officecli create deck.pptx
officecli add deck.pptx / --type slide --prop title="Q4 Report" --prop background=1A1A2E
officecli add deck.pptx '/slide[1]' --type shape \
  --prop text="Revenue grew 25%" --prop x=2cm --prop y=5cm \
  --prop font=Arial --prop size=24 --prop color=FFFFFF

# アウトラインを表示
officecli view deck.pptx outline
# → Slide 1: Q4 Report
# →   Shape 1 [TextBox]: Revenue grew 25%

# HTML で表示 — サーバー不要、ブラウザでレンダリングされたプレビューを開きます
officecli view deck.pptx html

# 任意の要素の構造化 JSON を取得
officecli get deck.pptx '/slide[1]/shape[1]' --json
{
  "tag": "shape",
  "path": "/slide[1]/shape[1]",
  "attributes": {
    "name": "TextBox 1",
    "text": "Revenue grew 25%",
    "x": "720000",
    "y": "1800000"
  }
}

なぜ OfficeCLI?

以前は 50行の Python と 3つのライブラリが必要でした:

from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[0])
title = slide.shapes.title
title.text = "Q4 Report"
# ... さらに 45行 ...
prs.save('deck.pptx')

今はコマンド一つで:

officecli add deck.pptx / --type slide --prop title="Q4 Report"

OfficeCLI でできること:

  • 作成 ドキュメント -- 空白またはコンテンツ付き
  • 読み取り テキスト、構造、スタイル、数式 -- プレーンテキストまたは構造化 JSON
  • 分析 フォーマットの問題、スタイルの不整合、構造的な欠陥
  • 修正 任意の要素 -- テキスト、フォント、色、レイアウト、数式、チャート、画像
  • 再構成 コンテンツ -- 要素の追加、削除、移動、文書間コピー
フォーマット 読み取り 修正 作成
Word (.docx)
Excel (.xlsx)
PowerPoint (.pptx)

Word — 完全な i18n & RTL サポート(スクリプト別フォントスロット、スクリプト別 BCP-47 言語タグ lang.latin/ea/cs、複雑スクリプトの太字/斜体/サイズ、段落/ラン/セクション/表/スタイル/ヘッダー/フッター/docDefaults をカスケードする direction=rtlrtlGutter + pgBorders ショートハンド、ヒンディー語/アラビア語/タイ語/CJK のロケール対応ページ番号)、段落ランスタイルヘッダー/フッター画像(PNG/JPG/GIF/SVG)、数式コメント脚注透かしブックマーク目次チャートハイパーリンクセクションフォームフィールドコンテンツコントロール (SDT)フィールド(22 種類のゼロ引数 + MERGEFIELD / REF / PAGEREF / SEQ / STYLEREF / DOCPROPERTY / IF)、OLE オブジェクト文書プロパティ

Excelセル(追加時にふりがな対応)、数式(150以上の組み込み関数を自動計算、動的配列関数に _xlfn. 自動プレフィックス)、シート(visible/hidden/veryHidden、印刷余白、printTitleRows/Cols、RTL sheetView、カスケード対応のシート名変更)、テーブルソート(シート/範囲、マルチキー、サイドカー対応)、条件付き書式チャート(箱ひげ図、パレート図 自動ソート + 累積%、対数軸を含む)、ピボットテーブル(マルチフィールド、日付グループ化、showDataAs、ソート、総計、小計、コンパクト/アウトライン/表形式レイアウト、項目ラベル繰り返し、空白行、計算フィールド)、スライサー名前付き範囲データ入力規則画像(PNG/JPG/GIF/SVG、デュアル表現フォールバック)、スパークラインコメント(RTL)、オートフィルター図形OLE オブジェクト、CSV/TSV インポート、$Sheet:A1 セルアドレッシング

PowerPointスライド(ヘッダー/フッター/日付/スライド番号トグル、非表示)、図形(パターン塗りつぶし、ぼかし効果、ハイパーリンクツールチップ + スライドジャンプリンク)、画像(PNG/JPG/GIF/SVG、塗りモード: stretch/contain/cover/tile、明るさ/コントラスト/光彩/影)、チャートアニメーションモーフトランジション3D モデル (.glb)スライドズーム数式テーマコネクタビデオ/オーディオグループノート(RTL、lang)、コメント(RTL)、OLE オブジェクトプレースホルダー(phType で追加/設定)

使用シーン

開発者向け:

  • データベースや API からのレポート自動生成
  • 文書の一括処理(一括検索/置換、スタイル更新)
  • CI/CD 環境でのドキュメントパイプライン構築(テスト結果からドキュメント生成)
  • Docker/コンテナ環境でのヘッドレス Office 自動化

AI エージェント向け:

  • ユーザーのプロンプトからプレゼンテーションを生成(上記の例を参照)
  • ドキュメントから構造化データを JSON に抽出
  • 納品前のドキュメント品質検証

チーム向け:

  • ドキュメントテンプレートを複製してデータを入力
  • CI/CD パイプラインでの自動ドキュメント検証

インストール

単一の自己完結型バイナリとして配布。.NET ランタイムは内蔵 -- インストール不要、ランタイム管理不要。

ワンライナーインストール:

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex

または手動ダウンロード GitHub Releases

プラットフォーム バイナリ
macOS Apple Silicon officecli-mac-arm64
macOS Intel officecli-mac-x64
Linux x64 officecli-linux-x64
Linux ARM64 officecli-linux-arm64
Windows x64 officecli-win-x64.exe
Windows ARM64 officecli-win-arm64.exe

インストール確認:officecli --version

またはダウンロード済みバイナリからセルフインストール(officecli を直接実行してもインストールがトリガーされます):

officecli install    # 明示的インストール
officecli            # 直接実行でもインストールがトリガー

更新はバックグラウンドで自動チェックされます。officecli config autoUpdate false で無効化、または OFFICECLI_SKIP_UPDATE=1 で単回スキップ可能。設定は ~/.officecli/config.json にあります。

主な機能

内蔵エンジンと生成プリミティブ

OfficeCLI は自己完結型です。以下の機能はすべてバイナリ内蔵 — Office 不要

レンダリングエンジン

ゼロから実装したエージェントフレンドリーなレンダリングエンジンがバイナリ内に同梱され、シェイプ、チャート (トレンドライン、エラーバー、ウォーターフォール、ローソク足、スパークライン)、数式 (OMML → MathJax 互換)、Three.js による 3D .glb モデル、モーフトランジション、スライドズーム、シェイプエフェクトをカバー。ページごとの PNG スクリーンショットは、レンダリングされた HTML をヘッドレスブラウザに渡して生成されます。3 つのモード:

  • view html — スタンドアロン HTML ファイル、アセットインライン。任意のブラウザで開けます。
  • view screenshot — ページごとの PNG、マルチモーダルエージェント向け。
  • watch — ローカル HTTP サーバー + 自動更新プレビュー。add / set / remove でブラウザが即座に更新。Excel watch はインラインセル編集とチャートのドラッグ再配置をサポート。
officecli view deck.pptx html -o /tmp/deck.html
officecli view deck.pptx screenshot -o /tmp/deck.png # 複数ページは --page 1-N
officecli watch deck.pptx                            # http://localhost:26315

可視化なしでは、スライドを生成するエージェントは盲目的に飛んでいるようなもの — DOM は読めても、タイトルがオーバーフローしているか、2 つのシェイプが重なっているかは判断できません。レンダリングがバイナリに内蔵されているため、"レンダリング → 見る → 修正" のループは CI、Docker、ディスプレイのないサーバー — バイナリが動くあらゆる場所で動作します。

数式 & ピボットエンジン

150+ の Excel 関数が書き込み時に自動評価 — =SUM(A1:A2) を書いて、セルを get する、値はすでにそこに。Office で再計算するラウンドトリップは不要。動的配列関数 (FILTER / UNIQUE / SORT / SEQUENCE_xlfn. 自動プレフィックス)、VLOOKUP / INDEX / MATCH、日付・テキスト関数など 140+ の関数をカバー。

加えて、ソース範囲から 1 コマンドでネイティブな OOXML ピボットテーブル — マルチフィールドの行/列/フィルター、10 種類の集計、showDataAs モード、日付グループ化、計算フィールド、Top-N、レイアウト。ピボットキャッシュ + 定義は OOXML に書き込まれ、Excel で開くと集計済みの状態で表示されます:

officecli add sales.xlsx '/Sheet1' --type pivottable \
  --prop source='Data!A1:E10000' --prop rows='Region,Category' \
  --prop cols=Quarter --prop values='Revenue:sum,Units:avg' \
  --prop showDataAs=percentOfTotal

テンプレートマージ — 一度設計、N 回入力

merge は任意の .docx / .xlsx / .pptx{{key}} プレースホルダーを JSON データで置換 — 段落、表セル、シェイプ、ヘッダー/フッター、チャートタイトル全体で動作。エージェントが一度レイアウトを設計 (高コスト)、本番コードが N 回入力 (低コスト、決定論的、トークンコストゼロ)。エージェントが各レポートを毎回ゼロから再生成し、N 個の一貫性のないレイアウトを生み出す失敗モードを回避します。

officecli merge invoice-template.docx out-001.docx '{"client":"Acme","total":"$5,200"}'
officecli merge q4-template.pptx q4-acme.pptx data.json

Dump によるラウンドトリップ — 既存ドキュメントから学ぶ

dump は任意の .docx — ドキュメント全体または任意のサブツリー(単一の段落、表、styles、numbering、theme、settings)— を再生可能なバッチ JSON にシリアライズし、batch で再生。ユーザーが模倣したいサンプルから、エージェントは生の OOXML XML ではなく構造化された仕様を読み、変更して再生します。"既存テンプレートがある" と "100 個のバリエーションを生成して" を繋ぎます。

officecli dump existing.docx -o blueprint.json                  # ドキュメント全体
officecli dump existing.docx /body/tbl[1] -o table.json         # 任意のサブツリー
officecli batch new.docx --input blueprint.json

レジデントモードとバッチ

複数ステップのワークフローでは、レジデントモードがドキュメントをメモリに保持。バッチモードは一度の open/save サイクルで複数操作を実行します。

# レジデントモード — 名前付きパイプ経由で遅延ほぼゼロ
officecli open report.docx
officecli set report.docx /body/p[1]/r[1] --prop bold=true
officecli set report.docx /body/p[2]/r[1] --prop color=FF0000
officecli close report.docx

# バッチモード — アトミックなマルチコマンド実行(デフォルトで最初のエラーで停止)
echo '[{"command":"set","path":"/slide[1]/shape[1]","props":{"text":"Hello"}},
      {"command":"set","path":"/slide[1]/shape[2]","props":{"fill":"FF0000"}}]' \
  | officecli batch deck.pptx --json

# インラインバッチ — stdin 不要
officecli batch deck.pptx --commands '[{"op":"set","path":"/slide[1]/shape[1]","props":{"text":"Hi"}}]'

# --force でエラーをスキップして続行
officecli batch deck.pptx --input updates.json --force --json

三層アーキテクチャ

シンプルに始めて、必要な時だけ深く。

レイヤー 用途 コマンド
L1:読み取り コンテンツのセマンティックビュー view(text、annotated、outline、stats、issues、html、svg、screenshot)
L2:DOM 構造化された要素操作 getquerysetaddremovemoveswap
L3:生 XML XPath による直接アクセス — 万能フォールバック rawraw-setadd-partvalidate
# L1 — 高レベルビュー
officecli view report.docx annotated
officecli view budget.xlsx text --cols A,B,C --max-lines 50

# L2 — 要素レベルの操作
officecli query report.docx "run:contains(TODO)"
officecli add budget.xlsx / --type sheet --prop name="Q2 Report"
officecli move report.docx /body/p[5] --to /body --index 1

# L3 — L2 では足りない時に生 XML
officecli raw deck.pptx '/slide[1]'
officecli raw-set report.docx document \
  --xpath "//w:p[1]" --action append \
  --xml '<w:r><w:t>Injected text</w:t></w:r>'

AI 統合

MCP サーバー

組み込み MCP サーバー — コマンド一つで登録:

officecli mcp claude       # Claude Code
officecli mcp cursor       # Cursor
officecli mcp vscode       # VS Code / Copilot
officecli mcp lmstudio     # LM Studio
officecli mcp list         # 登録状態を確認

JSON-RPC で全ドキュメント操作を公開 — シェルアクセス不要。

直接 CLI 統合

2ステップで OfficeCLI を任意の AI エージェントに統合:

  1. バイナリをインストール -- コマンド一つ(インストール参照)
  2. 完了。 OfficeCLI は AI ツール(Claude Code、GitHub Copilot、Codex)を自動検出し、既知の設定ディレクトリを確認してスキルファイルをインストールします。エージェントはすぐに Office 文書の作成・読み取り・変更が可能です。
手動設定(オプション)

自動インストールがお使いの環境に対応していない場合、手動でスキルファイルをインストールできます:

SKILL.md を直接エージェントに読み込ませる:

curl -fsSL https://officecli.ai/SKILL.md

Claude Code のローカルスキルとしてインストール:

curl -fsSL https://officecli.ai/SKILL.md -o ~/.claude/skills/officecli.md

その他のエージェント: SKILL.md の内容をエージェントのシステムプロンプトまたはツール説明に含めてください。

エージェントが OfficeCLI で活躍する理由

  • 決定論的 JSON 出力 — すべてのコマンドが --json をサポートし、スキーマは一貫。正規表現パース不要、stdout スクレイピング不要。
  • パスベースのアドレッシング — すべての要素に安定したパス (/slide[1]/shape[2])。エージェントは XML 名前空間を理解せずにドキュメントをナビゲート可能。(OfficeCLI 独自の構文: 1-based インデックス、要素ローカル名 — XPath ではない。)
  • 段階的複雑度 (L1 → L2 → L3) — エージェントは読み取り専用ビューから始め、DOM 操作にエスカレート、必要な時のみ raw XML にフォールバック。トークン消費を最小化。
  • 自己修復ワークフローvalidateview issues、構造化エラーコード (not_foundinvalid_valueunsupported_property) は suggestion と有効範囲を返します。エージェントは人間の介入なしに自己修正します。
  • 内蔵エージェントフレンドリーレンダリングエンジンview html / view screenshot / watch がネイティブに HTML と PNG を出力。Office 不要。エージェントは CI / Docker / ヘッドレス環境でも自分の出力を "見て" レイアウトの問題を修正できます。
  • 内蔵数式 & ピボットエンジン — 150+ の Excel 関数が書き込み時に自動評価; ソース範囲から 1 コマンドでネイティブ OOXML ピボットテーブル。エージェントは Office で再計算せずに、計算値と集計結果を即座に読み取れます。
  • テンプレートマージ — エージェントがレイアウトを一度設計し、下流コードが {{key}} プレースホルダーを N 回入力。各レポートを再生成してトークンを焼くことを避けます。
  • ラウンドトリップ Dumpdump が任意の .docx を再生可能なバッチ JSON に変換。エージェントは生の OOXML XML ではなく構造化された仕様を読んで、人間が作成したサンプルから学習。
  • 内蔵ヘルプ — プロパティ名や値形式に迷ったら、エージェントは推測せず officecli <format> set <element> を実行。
  • 自動インストール — OfficeCLI は使っているツール (Claude Code、Cursor、VS Code…) を検出して自己構成します。手動の skill ファイルセットアップ不要。

組み込みヘルプ

プロパティ名がわからない時は、階層型ヘルプで確認:

officecli pptx set              # 全設定可能な要素とプロパティ
officecli pptx set shape        # 特定の要素タイプの詳細
officecli pptx set shape.fill   # 単一プロパティのフォーマットと例
officecli docx query            # セレクタリファレンス:属性、:contains、:has() など

pptxdocxxlsx に置き換え可能。動詞は viewgetquerysetaddraw

officecli --help で全体概要を確認。

JSON 出力スキーマ

全コマンドが --json に対応。一般的なレスポンス形式:

単一要素get --json):

{"tag": "shape", "path": "/slide[1]/shape[1]", "attributes": {"name": "TextBox 1", "text": "Hello"}}

要素リストquery --json):

[
  {"tag": "paragraph", "path": "/body/p[1]", "attributes": {"style": "Heading1", "text": "Title"}},
  {"tag": "paragraph", "path": "/body/p[5]", "attributes": {"style": "Heading1", "text": "Summary"}}
]

エラー は構造化エラーオブジェクトを返却。エラーコード、修正提案、利用可能な値を含みます:

{
  "success": false,
  "error": {
    "error": "Slide 50 not found (total: 8)",
    "code": "not_found",
    "suggestion": "Valid Slide index range: 1-8"
  }
}

エラーコード:not_foundinvalid_valueunsupported_propertyinvalid_pathunsupported_typemissing_propertyfile_not_foundfile_lockedinvalid_selector。プロパティ名は自動修正対応 -- プロパティ名のスペルミスは最も近い候補を提案します。

エラー回復 -- エージェントは利用可能な要素を確認して自己修正:

# エージェントが無効なパスを試行
officecli get report.docx /body/p[99] --json
# 返却: {"success": false, "error": {"error": "...", "code": "not_found", "suggestion": "..."}}

# エージェントが利用可能な要素を確認して自己修正
officecli get report.docx /body --depth 1 --json
# 利用可能な子要素のリストを返却、エージェントが正しいパスを選択

変更確認setaddremovemovecreate--json 使用時):

{"success": true, "path": "/slide[1]/shape[1]"}

officecli --help で終了コードとエラー形式の完全な説明を確認。

比較

OfficeCLI Microsoft Office LibreOffice python-docx / openpyxl
オープンソース&無料 ✓ (Apache 2.0) ✗(有料ライセンス)
AI ネイティブ CLI + JSON
ゼロインストール(単一バイナリ) ✗(Python + pip 必要)
任意の言語から呼び出し ✓ (CLI) ✗ (COM/Add-in) ✗ (UNO API) Python のみ
パスベースの要素アクセス
生 XML フォールバック 部分対応
内蔵エージェントフレンドリーレンダリングエンジン
ヘッドレス HTML/PNG 出力 部分対応
クロスフォーマットテンプレートマージ ({{key}})
Dump → batch JSON ラウンドトリップ
ライブプレビュー (編集後自動更新)
ヘッドレス / CI 部分対応
クロスプラットフォーム Windows/Mac
Word + Excel + PowerPoint 複数ライブラリが必要

コマンドリファレンス

コマンド 説明
create 空白の .docx、.xlsx、.pptx を作成(拡張子からタイプを判定)
view コンテンツを表示(モード:outlinetextannotatedstatsissueshtml
get 要素と子要素を取得(--depth N--json
query CSS スタイルのクエリ([attr=value]:contains():has() など)
set 要素のプロパティを変更
add 要素を追加(または --from <path> でクローン)
remove 要素を削除
move 要素を移動(--to <parent>--index N--after <path>--before <path>
swap 2つの要素を交換
validate OpenXML スキーマ検証
batch 一度の open/save サイクルで複数操作を実行(stdin、--input、または --commands;デフォルトで最初のエラーで停止、--force で続行)
merge テンプレートマージ — {{key}} プレースホルダーを JSON データで置換
watch ブラウザでライブ HTML プレビュー、自動更新
mcp AI ツール統合用の MCP サーバーを起動
raw ドキュメントパートの生 XML を表示
raw-set XPath で生 XML を変更
add-part 新しいドキュメントパート(ヘッダー、チャートなど)を追加
open レジデントモードを開始(ドキュメントをメモリに保持)
close 保存してレジデントモードを終了
install バイナリ + スキル + MCP をインストール(allclaudecursor など)
config 設定の取得または変更
<format> <command> 組み込みヘルプ(例:officecli pptx set shape

エンドツーエンドワークフロー例

典型的なエージェント自己修復ワークフロー:プレゼンテーションの作成、コンテンツの入力、検証、問題の修正 -- すべて人間の介入なし。

# 1. 作成
officecli create report.pptx

# 2. コンテンツを追加
officecli add report.pptx / --type slide --prop title="Q4 Results"
officecli add report.pptx '/slide[1]' --type shape \
  --prop text="Revenue: $4.2M" --prop x=2cm --prop y=5cm --prop size=28
officecli add report.pptx / --type slide --prop title="Details"
officecli add report.pptx '/slide[2]' --type shape \
  --prop text="Growth driven by new markets" --prop x=2cm --prop y=5cm

# 3. 検証
officecli view report.pptx outline
officecli validate report.pptx

# 4. 問題の修正
officecli view report.pptx issues --json
# 出力に基づいて問題を修正:
officecli set report.pptx '/slide[1]/shape[1]' --prop font=Arial

単位と色

すべての寸法・色プロパティは柔軟な入力形式に対応:

タイプ 対応形式
寸法 cm、in、pt、px または生 EMU 2cm1in72pt96px914400
16進数、色名、RGB、テーマ色 #FF0000FF0000redrgb(255,0,0)accent1
フォントサイズ 数値のみまたは pt 接尾辞付き 1414pt10.5pt
間隔 pt、cm、in または倍率 12pt0.5cm1.5x150%

よく使うパターン

# Word 文書の全 Heading1 テキストを置換
officecli query report.docx "paragraph[style=Heading1]" --json | ...
officecli set report.docx /body/p[1]/r[1] --prop text="New Title"

# 全スライドのコンテンツを JSON でエクスポート
officecli get deck.pptx / --depth 2 --json

# Excel セルを一括更新
officecli batch budget.xlsx --input updates.json --json

# CSV データを Excel シートにインポート
officecli add budget.xlsx / --type sheet --prop name="Q1 Data" --prop csv=sales.csv

# テンプレートマージでレポートを一括生成
officecli merge invoice-template.docx invoice-001.docx '{"client":"Acme","total":"$5,200"}'

# 納品前にドキュメント品質をチェック
officecli validate report.docx && officecli view report.docx issues --json

Python から呼び出し — 一度ラップすれば、すべての呼び出しでパース済み JSON が返ります:

import json, subprocess

def cli(*args):
    return json.loads(subprocess.check_output(["officecli", *args, "--json"], text=True))

cli("create", "deck.pptx")
cli("add", "deck.pptx", "/", "--type", "slide", "--prop", "title=Q4 レポート")
slide = cli("get", "deck.pptx", "/slide[1]")
print(slide["attributes"]["text"])

ドキュメント

Wiki に全コマンド、要素タイプ、プロパティの詳細ガイドがあります:

ソースからビルド

コンパイルには .NET 10 SDK が必要です。出力は自己完結型のネイティブバイナリ -- .NET は内蔵されているため、実行時にはインストール不要です。

./build.sh

ライセンス

Apache License 2.0

バグ報告やコントリビューションは GitHub Issues まで。


OfficeCLI が役に立ったら、ぜひ GitHub でスターを付けてください — より多くの人にプロジェクトを届ける力になります。

OfficeCLI.AI | GitHub