원클릭으로
xlsx
创建和编辑 Excel 表格。不用于:Google Sheets(用 gws-sheets)、数据库操作
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
创建和编辑 Excel 表格。不用于:Google Sheets(用 gws-sheets)、数据库操作
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
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.