with one click
xlsx
创建和编辑 Excel 表格。不用于:Google Sheets(用 gws-sheets)、数据库操作
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
创建和编辑 Excel 表格。不用于:Google Sheets(用 gws-sheets)、数据库操作
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Use when the user asks to create, edit, improve, redesign, beautify, inspect, or export PowerPoint decks, PPT files, slide decks, keynotes, or .pptx deliverables. Prefer this skill for presentation work that must produce a real PPTX file, especially when visual quality, editable text, brand assets, charts, or export verification matter. Do not use for Word documents or PDFs.
Markdown 转微信公众号排版并发布草稿。Use this whenever the user asks to convert Markdown to WeChat Official Account HTML, inspect publish readiness, preview local WeChat layout, or create a WeChat draft. 不用于:写文章内容、其他平台发布。
视频字幕提取、翻译、双语合并、烧录。不用于:纯音频转文字、翻译文本文件、视频剪辑
下载视频/音频(YouTube、B站、Twitter等)。不用于:网页抓取(用 web_fetch)、直播录制
AI图片生成(文生图、图生图、去背景、放大),需本地 ComfyUI。不用于:截图、网页抓图、非AI图片处理
创建自定义技能(SKILL.md)。不用于:执行已有技能、修改代码、一次性脚本
| name | xlsx |
| description | 创建和编辑 Excel 表格。不用于:Google Sheets(用 gws-sheets)、数据库操作 |
All output files go to the working directory (工作目录). Use file_write to create the Python script, then shell to execute it.
{"command": "pip install openpyxl", "timeout": 60000}
# file_write: {WORKDIR}/_script.py
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.utils import get_column_letter
wb = Workbook()
ws = wb.active
ws.title = "数据"
# --- Header row with styling ---
headers = ["姓名", "部门", "工资", "入职日期"]
header_font = Font(bold=True, size=12, color="FFFFFF")
header_fill = PatternFill(start_color="4472C4", end_color="4472C4", fill_type="solid")
header_align = Alignment(horizontal="center", vertical="center")
for col, header in enumerate(headers, 1):
cell = ws.cell(row=1, column=col, value=header)
cell.font = header_font
cell.fill = header_fill
cell.alignment = header_align
# --- Data rows ---
data = [
["张三", "技术部", 15000, "2023-01-15"],
["李四", "市场部", 12000, "2023-03-20"],
["王五", "技术部", 18000, "2022-11-01"],
["赵六", "财务部", 14000, "2023-06-10"],
]
for r, row_data in enumerate(data, 2):
for c, val in enumerate(row_data, 1):
ws.cell(row=r, column=c, value=val)
# --- Formulas ---
ws.cell(row=6, column=2, value="平均工资")
ws.cell(row=6, column=3, value="=AVERAGE(C2:C5)")
ws.cell(row=7, column=2, value="最高工资")
ws.cell(row=7, column=3, value="=MAX(C2:C5)")
ws.cell(row=8, column=2, value="总计")
ws.cell(row=8, column=3, value="=SUM(C2:C5)")
# --- Auto-adjust column widths ---
for col_idx in range(1, len(headers) + 1):
ws.column_dimensions[get_column_letter(col_idx)].width = 15
# --- Freeze top row ---
ws.freeze_panes = "A2"
wb.save("{WORKDIR}/output.xlsx")
print("OK: {WORKDIR}/output.xlsx")
Then execute:
{"command": "python {WORKDIR}/_script.py", "timeout": 30000}
# file_write: {WORKDIR}/_script.py
from openpyxl import load_workbook
wb = load_workbook("{WORKDIR}/input.xlsx", data_only=True) # data_only=True to read computed values
for sheet_name in wb.sheetnames:
ws = wb[sheet_name]
print(f"\n=== Sheet: {sheet_name} ({ws.max_row} rows x {ws.max_column} cols) ===")
for row in ws.iter_rows(min_row=1, max_row=min(ws.max_row, 20), values_only=False):
print(" | ".join(str(cell.value) if cell.value is not None else "" for cell in row))
if ws.max_row > 20:
print(f"... ({ws.max_row - 20} more rows)")
# file_write: {WORKDIR}/_script.py
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference
wb = load_workbook("{WORKDIR}/output.xlsx")
ws = wb.active
chart = BarChart()
chart.type = "col"
chart.title = "工资对比"
chart.y_axis.title = "金额 (元)"
chart.x_axis.title = "员工"
# Categories (names): column 1, rows 2-5
cats = Reference(ws, min_col=1, min_row=2, max_row=5)
# Data (salaries): column 3, rows 1-5 (row 1 = header for series name)
data = Reference(ws, min_col=3, min_row=1, max_row=5)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
chart.shape = 4
chart.width = 18
chart.height = 10
ws.add_chart(chart, "E2")
wb.save("{WORKDIR}/output_chart.xlsx")
print("OK: {WORKDIR}/output_chart.xlsx")
from openpyxl import load_workbook
wb = load_workbook("{WORKDIR}/output.xlsx")
ws2 = wb.create_sheet("汇总")
ws2["A1"] = "部门"
ws2["B1"] = "人数"
ws2.append(["技术部", 2])
ws2.append(["市场部", 1])
ws2.append(["财务部", 1])
wb.save("{WORKDIR}/output.xlsx")
print("OK")
from openpyxl import load_workbook
from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import PatternFill
wb = load_workbook("{WORKDIR}/output.xlsx")
ws = wb.active
# Highlight salaries > 15000 in green
green_fill = PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid")
ws.conditional_formatting.add("C2:C100",
CellIsRule(operator="greaterThan", formula=["15000"], fill=green_fill))
wb.save("{WORKDIR}/output.xlsx")
print("OK")
{WORKDIR}/xxx.xlsx. Use descriptive filenames.data_only=True when reading to get computed formula values (not the formula string).write_only=True mode for better performance.send_file to deliver it to the user.