xlsx-generator
Excelファイル(XLSX形式)をプログラムで生成・編集するスキルです。スプレッドシートの新規作成、テンプレートをベースにしたブランド準拠のレポート生成、既存XLSXからのデータ抽出、Excelワークフローの自動化が必要なときに使用します。財務分析やデータレポートなど幅広い用途に対応します。
description の原文を見る
Create and manipulate Excel XLSX files programmatically. Use when the user needs to generate spreadsheets, modify XLSX templates, extract spreadsheet content, or automate Excel workflows. Supports both template-based generation (for branding compliance) and from-scratch creation. Keywords: Excel, XLSX, spreadsheet, workbook, worksheet, data, report, template, financial, analysis.
SKILL.md 本文
XLSX Generator
このスキルを使う場合
以下の場合に このスキルを使用します:
- データや仕様からプログラム的にExcelスプレッドシートを作成する
- ブランド化されたテンプレートを動的コンテンツで埋める(フォーマットは保持)
- 既存のXLSXファイルからセルデータ、数式、構造を抽出する
{{TITLE}}や${date}などのプレースホルダーテキストをセル内で検索・置換する- スプレッドシート生成ワークフロー(レポート、データエクスポート、財務諸表)を自動化する
このスキルを使わないでください:
- ユーザーがスプレッドシートを開く/表示したい場合(ネイティブExcelまたはビューアを使用)
- 複雑なピボットテーブルやグラフが必要な場合(サポートが限定的)
- 旧式の.xls形式で作業する場合(XLSXのみ対応)
- リアルタイムの共同編集が必要な場合
必要な環境
- Deno がインストール済み (https://deno.land/)
- テンプレート操作用の入力 XLSX ファイル
- ゼロから生成する場合の JSON 仕様
クイックスタート
2つの動作モード
-
テンプレートモード: 既存のブランド化されたテンプレートを変更
- テンプレートを分析してプレースホルダーと構造を検出
{{PLACEHOLDERS}}を実際の値で置換
-
ゼロから作成モード: JSON 仕様を使用してスプレッドシートを最初から作成
使用方法
モード 1: テンプレートベースの生成
ステップ 1a: テンプレートを分析
セルインベントリを抽出して、何を置換できるかを把握します:
deno run --allow-read scripts/analyze-template.ts financial-template.xlsx > inventory.json
出力 (inventory.json):
{
"filename": "financial-template.xlsx",
"sheetCount": 3,
"sheets": [
{
"name": "Summary",
"rowCount": 25,
"colCount": 8,
"usedRange": "A1:H25",
"cells": [
{ "address": "A1", "row": 1, "col": 1, "value": "{{REPORT_TITLE}}", "type": "string" },
{ "address": "B3", "row": 3, "col": 2, "value": "{{DATE}}", "type": "string" },
{ "address": "C5", "row": 5, "col": 3, "value": null, "type": "number", "formula": "SUM(C6:C20)" }
]
}
],
"placeholders": [
{ "tag": "{{REPORT_TITLE}}", "location": "Summary!A1", "sheet": "Summary", "address": "A1" },
{ "tag": "{{DATE}}", "location": "Summary!B3", "sheet": "Summary", "address": "B3" }
],
"hasFormulas": true
}
ステップ 1b: 置換仕様を作成
replacements.json を作成します:
{
"textReplacements": [
{ "tag": "{{REPORT_TITLE}}", "value": "Q4 2024 Financial Report" },
{ "tag": "{{DATE}}", "value": "December 15, 2024" },
{ "tag": "{{COMPANY}}", "value": "Acme Corporation", "sheets": ["Summary", "Cover"] }
],
"cellUpdates": [
{ "sheet": "Data", "address": "B5", "value": 1250000 },
{ "sheet": "Data", "address": "B6", "value": 750000 }
]
}
ステップ 1c: 出力を生成
deno run --allow-read --allow-write scripts/generate-from-template.ts \
financial-template.xlsx replacements.json output.xlsx
モード 2: ゼロから生成
ステップ 2a: 仕様を作成
spec.json を作成します:
{
"title": "Sales Report",
"author": "Finance Team",
"sheets": [
{
"name": "Sales Data",
"data": [
["Product", "Q1", "Q2", "Q3", "Q4", "Total"],
["Widget A", 10000, 12000, 15000, 18000, null],
["Widget B", 8000, 9000, 11000, 13000, null],
["Widget C", 5000, 6000, 7000, 8000, null]
],
"cells": [
{ "address": "F2", "formula": "SUM(B2:E2)" },
{ "address": "F3", "formula": "SUM(B3:E3)" },
{ "address": "F4", "formula": "SUM(B4:E4)" }
],
"columns": [
{ "col": "A", "width": 15 },
{ "col": "B", "width": 10 },
{ "col": "C", "width": 10 },
{ "col": "D", "width": 10 },
{ "col": "E", "width": 10 },
{ "col": "F", "width": 12 }
],
"freezePane": "A2",
"autoFilter": "A1:F4"
}
]
}
ステップ 2b: スプレッドシートを生成
deno run --allow-read --allow-write scripts/generate-scratch.ts spec.json output.xlsx
例
例 1: 月間売上レポート
シナリオ: テンプレートから月間売上レポートを生成します。
ステップ:
# 1. テンプレートを分析して置換可能なコンテンツを検出
deno run --allow-read scripts/analyze-template.ts sales-template.xlsx --pretty
# 2. replacements.json を月次データで作成
# 3. レポートを生成
deno run --allow-read --allow-write scripts/generate-from-template.ts \
sales-template.xlsx replacements.json November-Sales.xlsx
例 2: 計算値を含むデータエクスポート
シナリオ: 計算合計を含むスプレッドシートを作成します。
spec.json:
{
"sheets": [{
"name": "Expenses",
"data": [
["Category", "January", "February", "March", "Total"],
["Office", 1500, 1600, 1400, null],
["Travel", 3000, 2500, 4000, null],
["Software", 500, 500, 500, null],
["Total", null, null, null, null]
],
"cells": [
{ "address": "E2", "formula": "SUM(B2:D2)" },
{ "address": "E3", "formula": "SUM(B3:D3)" },
{ "address": "E4", "formula": "SUM(B4:D4)" },
{ "address": "B5", "formula": "SUM(B2:B4)" },
{ "address": "C5", "formula": "SUM(C2:C4)" },
{ "address": "D5", "formula": "SUM(D2:D4)" },
{ "address": "E5", "formula": "SUM(E2:E4)" }
]
}]
}
例 3: 複数シートのワークブック
シナリオ: サマリーシートと詳細シートを含むワークブックを作成します。
spec.json:
{
"title": "Q4 Report",
"sheets": [
{
"name": "Summary",
"data": [
["Department", "Budget", "Actual", "Variance"],
["Sales", 500000, 520000, null],
["Marketing", 200000, 195000, null]
],
"cells": [
{ "address": "D2", "formula": "C2-B2" },
{ "address": "D3", "formula": "C3-B3" }
]
},
{
"name": "Sales Detail",
"data": [
["Month", "Revenue", "Cost", "Profit"],
["October", 180000, 120000, null],
["November", 170000, 115000, null],
["December", 170000, 110000, null]
],
"cells": [
{ "address": "D2", "formula": "B2-C2" },
{ "address": "D3", "formula": "B3-C3" },
{ "address": "D4", "formula": "B4-C4" }
]
}
]
}
スクリプトリファレンス
| スクリプト | 目的 | パーミッション |
|---|---|---|
analyze-template.ts | XLSX からセル、数式、プレースホルダーを抽出 | --allow-read |
generate-from-template.ts | テンプレートのプレースホルダーを置換 | --allow-read --allow-write |
generate-scratch.ts | JSON 仕様から XLSX を作成 | --allow-read --allow-write |
仕様リファレンス
シートオプション
| プロパティ | 型 | 説明 |
|---|---|---|
name | string | シート名 |
data | array | A1 から始まる 2D 配列のセル値 |
cells | array | 個別セルの仕様 |
rows | array | 行ベースのデータ仕様 |
columns | array | 列幅と表示設定 |
merges | array | 結合セルの範囲 |
freezePane | string | このセルでペインを固定 (例: "A2") |
autoFilter | string | オートフィルター範囲 (例: "A1:F10") |
セルオプション
| プロパティ | 型 | 説明 |
|---|---|---|
address | string | セルアドレス (例: "A1", "B2") |
value | mixed | セル値 (文字列、数値、ブール値、null) |
formula | string | = 記号なしの数式 |
format | string | 数値形式 (例: "#,##0.00") |
type | string | 型を強制: "string", "number", "boolean", "date" |
列オプション
| プロパティ | 型 | 説明 |
|---|---|---|
col | string | 列文字 (例: "A", "B", "AA") |
width | number | 列幅(文字単位) |
hidden | boolean | 列を非表示 |
テンプレート置換オプション
| プロパティ | 型 | 説明 |
|---|---|---|
tag | string | 検索するプレースホルダー (例: "{{TITLE}}") |
value | mixed | 置換値 |
sheets | array | 特定のシートに限定 |
range | string | セル範囲に限定 (例: "A1:D10") |
よくある問題と解決方法
問題: プレースホルダーが置換されない
症状: 出力 XLSX に {{PLACEHOLDER}} タグが残っている。
解決方法:
analyze-template.tsを実行して正確なタグテキストと場所を確認- プレースホルダーが文字列セル内にあることを確認(数式内ではない)
- 置換仕様でシートフィルターを確認
問題: 数式がテキストとして表示される
症状: 数式が計算されずテキストとして表示される。
解決方法:
- 仕様の数式が "=" で始まらないことを確認(自動的に追加されます)
- セルの型が "string" に強制されていないことを確認
問題: 数値がテキストとしてフォーマットされている
症状: 数値にテキスト保存を示す緑色の三角形がある。
解決方法:
- 仕様で数字を引用符で囲まずに数値として使用
- テンプレート置換の場合、セル全体がプレースホルダーで置換値が数値なら自動変換
問題: 列幅が適用されない
症状: 仕様にもかかわらず列がデフォルト幅のままである。
解決方法:
- 列文字が大文字であることを確認
- 列仕様が配列形式であることを確認
制限事項
- XLSX のみ: 旧式の .xls または .xlsb 形式をサポートしていません
- マクロ不可: VBA マクロを作成または保存できません
- グラフ機能が限定的: ネイティブグラフ作成はサポートしていません
- ピボットテーブル不可: プログラム的にピボットテーブルを作成できません
- 基本的なスタイリング: セルフォーマットオプションが限定的です
- 条件付き書式不可: 条件付き書式ルールを設定できません
- 数式再計算: 数式は保存されますが再計算されません(Excel を開くと再計算)
関連スキル
- pptx-generator: PowerPoint プレゼンテーション作成用
- docx-generator: Word ドキュメント作成用
- csv-processor: より単純な CSV データ処理用
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jwynia
- リポジトリ
- jwynia/agent-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jwynia/agent-skills / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。