一键导入
xlsx
Use this skill when you need to create, manipulate, or analyze spreadsheets (.xlsx), work with formulas and charts, or perform data transformations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use this skill when you need to create, manipulate, or analyze spreadsheets (.xlsx), work with formulas and charts, or perform data transformations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Notion CLI tool for managing pages, databases, and content. Use when working with Notion data, creating/updating pages, querying databases, or syncing content.
ISO/IEC/IEEE 15288に基づき、ヒアリング資料から要求ドキュメント(1〜7)を順次生成します。既存ドキュメントがあれば差分更新します。
agent-browser CLIを使ってローカルアプリのUIをテストする。
GitHub Issueを作成する前に、BDD形式で要件を整理します:
- 未コミットの変更やunpushの状態があれば、Skill ツールを使って `/ok` コマンドを先に呼び出してください
Clarify ambiguities in plans with structured questions
| name | xlsx |
| description | Use this skill when you need to create, manipulate, or analyze spreadsheets (.xlsx), work with formulas and charts, or perform data transformations. |
スプレッドシート(.xlsx)の操作、数式・チャート・データ変換。
brew install --cask libreoffice
pip install pandas openpyxl xlsxwriter
import pandas as pd
data = {
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["Tokyo", "Osaka", "Kyoto"]
}
df = pd.DataFrame(data)
df.to_excel("output.xlsx", index=False, sheet_name="Sheet1")
import pandas as pd
# シート指定
df = pd.read_excel("input.xlsx", sheet_name="Sheet1")
print(df.head())
# 複数シート
all_sheets = pd.read_excel("input.xlsx", sheet_name=None)
for sheet_name, df in all_sheets.items():
print(f"Sheet: {sheet_name}")
print(df.head())
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = 10
ws["A2"] = 20
ws["A3"] = "=SUM(A1:A2)" # 数式
wb.save("with_formula.xlsx")
import pandas as pd
with pd.ExcelWriter("multi_sheet.xlsx") as writer:
df1 = pd.DataFrame({"A": [1, 2, 3]})
df2 = pd.DataFrame({"B": [4, 5, 6]})
df1.to_excel(writer, sheet_name="Sheet1", index=False)
df2.to_excel(writer, sheet_name="Sheet2", index=False)
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment
wb = Workbook()
ws = wb.active
# テキスト
ws["A1"] = "Styled Cell"
# フォント(太字・色)
ws["A1"].font = Font(bold=True, color="FF0000", size=14)
# 背景色
ws["A1"].fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
# 配置
ws["A1"].alignment = Alignment(horizontal="center", vertical="center")
wb.save("styled.xlsx")
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 通貨
ws["A1"] = 1234.56
ws["A1"].number_format = "$#,##0.00"
# パーセント
ws["A2"] = 0.85
ws["A2"].number_format = "0.0%"
# 日付
from datetime import datetime
ws["A3"] = datetime.now()
ws["A3"].number_format = "YYYY-MM-DD"
wb.save("formatted.xlsx")
from openpyxl import Workbook
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule
wb = Workbook()
ws = wb.active
ws.append([10, 20, 30, 40, 50])
# 30以上のセルを黄色に
red_fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws.conditional_formatting.add("A1:E1", CellIsRule(operator="greaterThan", formula=["30"], fill=red_fill))
wb.save("conditional.xlsx")
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
wb = Workbook()
ws = wb.active
# データ
data = [
["Category", "Values"],
["A", 10],
["B", 20],
["C", 30],
]
for row in data:
ws.append(row)
# チャート作成
chart = BarChart()
chart.title = "Bar Chart"
chart.x_axis.title = "Category"
chart.y_axis.title = "Values"
cats = Reference(ws, min_col=1, min_row=2, max_row=4)
vals = Reference(ws, min_col=2, min_row=1, max_row=4)
chart.add_data(vals, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, "E5")
wb.save("bar_chart.xlsx")
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference
wb = Workbook()
ws = wb.active
ws.append(["Month", "Sales"])
ws.append(["Jan", 100])
ws.append(["Feb", 150])
ws.append(["Mar", 200])
chart = LineChart()
chart.title = "Sales Trend"
chart.x_axis.title = "Month"
chart.y_axis.title = "Sales"
data = Reference(ws, min_col=2, min_row=1, max_row=4)
cats = Reference(ws, min_col=1, min_row=2, max_row=4)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, "D2")
wb.save("line_chart.xlsx")
# LibreOffice経由で数式を再計算
libreoffice --headless --convert-to xlsx:"Calc MS Excel 2007 XML" input.xlsx --outdir .
import pandas as pd
df = pd.read_excel("input.xlsx")
# 条件フィルタ
filtered = df[df["Age"] > 25]
filtered.to_excel("filtered.xlsx", index=False)
openpyxlはピボットテーブルを直接作成できないが、pandasで集計:
import pandas as pd
df = pd.read_excel("input.xlsx")
pivot = df.pivot_table(values="Sales", index="Category", columns="Month", aggfunc="sum")
pivot.to_excel("pivot.xlsx")
import pandas as pd
df = pd.read_excel("input.xlsx")
df.to_csv("output.csv", index=False)
libreoffice --headless --convert-to pdf input.xlsx --outdir .
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.merge_cells("A1:C1")
ws["A1"] = "Merged Cell"
wb.save("merged.xlsx")
重要: 常にExcel数式を使用し、Pythonで計算した値をハードコードしない。
# 悪い例
ws["C1"] = 30 # A1 + B1の結果をハードコード
# 良い例
ws["C1"] = "=A1+B1" # 数式で動的計算
$#,##0-)表示0.0%→ セル参照が正しいか確認(#REF!, #DIV/0!等)
→ encoding="utf-8"を指定、フォントインストール確認
→ openpyxlバージョン確認、データ範囲確認
→ pandasのchunksizeパラメータ、xlsxwriterを使用