Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add YuYY2004/excel-skills --skill excel-date-to-textgit clone --depth 1 https://github.com/YuYY2004/excel-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yuyy2004/excel-skills/excel-date-to-text)<a href="https://agentmods.dev/skills/yuyy2004/excel-skills/excel-date-to-text"><img src="https://agentmods.dev/badge/skills/yuyy2004/excel-skills/excel-date-to-text/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yuyy2004/excel-skills/excel-date-to-text"><img src="https://agentmods.dev/badge/skills/yuyy2004/excel-skills/excel-date-to-text.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00240 | $0.04495 |
| Opus 5 | $0.00120 | $0.02247 |
| Sonnet 5 | $0.00048 | $0.00899 |
| Haiku 4.5 | $0.00024 | $0.00449 |
Grade A, and why
excel-date-to-text scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 396 lines — stays where its author put it; the contents beside it link to each section on GitHub.
This skill follows [[excel-safe-workflow]] four-step method. Must complete Requirement Parsing→Scout→Plan before execution, and Verify after. 本技能遵循 [[excel-safe-workflow]] 四步法。执行前必须完成 需求解析→勘察→规划,执行后必须验证。
Excel Date Column to Custom Text / Excel 日期列转自定义文本
第零步:需求解析(先于勘察)
核心原则:从用户原话中提取意图,只问没说的。用户已经明确的内容不要再问。
解析三要素
从用户的请求中提取以下三项,缺失时才追问:
| 要素 | 常见表述 | 默认值 |
|---|---|---|
| 日期格式 | yyyymmdd、yyyy-mm-dd、yyyy/mm/dd、yyyy年mm月dd日、yyyymd 等 |
yyyymmdd |
| 新列位置 | "左边插入""左侧加一列""右边""右侧" → left/right;"替换""覆盖原列""直接改" → replace | left(左侧插入) |
| 新列表头 | "叫xxx""命名为xxx""表头写xxx" → 使用指定名称;未提及 → 默认 "{原列名}(文本)" |
"{原列名}(文本)" |
解析示例
| 用户说 | 提取结果 | 需要追问? |
|---|---|---|
| "把日期列转成 yyyymmdd 放在左边" | format=yyyymmdd, pos=left, header=默认 | 否 |
| "日期改成 yyyy/mm/dd ,直接替换原数据" | format=yyyy/mm/dd, pos=replace, header=N/A | 否 |
| "在日期列右边加一列,叫'格式化日期'" | format=yyyymmdd(默认), pos=right, header='格式化日期' | 否 |
| "把日期处理一下" | 全缺 | 是:追问格式、位置 |
| "日期列左边插入 yyyy-mm-dd 格式,命名为日期文本" | format=yyyy-mm-dd, pos=left, header='日期文本' | 否 |
追问模板(仅在信息不足时使用)
勘察完成,发现 N 个日期列:
- 列X: "公开(公告)日"
- 列Y: "申请日"
...
请确认以下三项(直接回复即可,已有默认值):
1. 日期格式:默认 yyyymmdd(也可选 yyyy-mm-dd、yyyy/mm/dd、yyyy年mm月dd日 等)
2. 新列位置:默认左侧插入(也可选 右侧插入 / 替换原列)
3. 新列表头:默认 "{原列名}(文本)"(也可自定义)
日期格式说明
用户可通过自然语言描述想要的日期格式,常见映射:
| 用户说 | strftime 格式 | 示例输出 |
|---|---|---|
| yyyymmdd / 年月日紧凑 | %Y%m%d |
20260424 |
| yyyy-mm-dd / 带横线 | %Y-%m-%d |
2026-04-24 |
| yyyy/mm/dd / 斜线分隔 | %Y/%m/%d |
2026/04/24 |
| yyyy年mm月dd日 / 中文 | %Y年%m月%d日 |
2026年04月24日 |
| yymmdd / 短年 | %y%m%d |
260424 |
| mmdd / 仅月日 | %m%d |
0424 |
| yyyymdd / 无补零月日 | 自定义函数 | 2026424 |
| yyyy/m/d / 斜线无补零 | 自定义函数 | 2026/4/24 |
解析规则:
yyyy→ 四位年份,yy→ 两位年份mm→ 补零两位月份,m→ 不补零月份dd→ 补零两位日期,d→ 不补零日期- 其他字符(
-、/、年、月、日等)→ 原样保留
日期格式转换函数
def build_format_fn(user_format):
"""根据用户描述的格式,返回一个 datetime → 文本 的转换函数。
支持的模式(大小写不敏感):
yyyy → 四位年, yy → 两位年
mm → 补零月, m → 不补零月
dd → 补零日, d → 不补零日
其他字符原样保留
"""
import re
fmt_lower = user_format.lower().strip()
# 保护分隔符:将非模式字符标记出来
# 替换顺序:先长后短,避免 yyyy 被误拆为 yy+yy
replacements = [
('yyyy', '\x00'), # 四位年占位
('yy', '\x01'), # 两位年占位
('mm', '\x02'), # 补零月占位
('dd', '\x03'), # 补零日占位
('m', '\x04'), # 不补零月占位
('d', '\x05'), # 不补零日占位
]
for pattern, placeholder in replacements:
fmt_lower = fmt_lower.replace(pattern, placeholder)
# 剩余字符是分隔符
separators = fmt_lower
# 重建格式序列
format_seq = []
i = 0
tmp = fmt_lower
while tmp:
ch = tmp[0]
if ch in '\x00\x01\x02\x03\x04\x05':
format_seq.append(ch)
tmp = tmp[1:]
else:
# 收集连续的分隔符
sep = ''
while tmp and tmp[0] not in '\x00\x01\x02\x03\x04\x05':
sep += tmp[0]
tmp = tmp[1:]
format_seq.append(sep)
def convert(dt):
"""将 datetime 转为目标格式文本"""
parts = []
for token in format_seq:
if token == '\x00': # yyyy
parts.append(f'{dt.year:04d}')
elif token == '\x01': # yy
parts.append(f'{dt.year % 100:02d}')
elif token == '\x02': # mm
parts.append(f'{dt.month:02d}')
elif token == '\x03': # dd
parts.append(f'{dt.day:02d}')
elif token == '\x04': # m (不补零)
parts.append(str(dt.month))
elif token == '\x05': # d (不补零)
parts.append(str(dt.day))
else: # 分隔符
parts.append(token)
return ''.join(parts)
return convert
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 396 lines · 240 tokens per session scan A 013945e6ed92
excel-date-to-text is a skill published in the GitHub repository YuYY2004/excel-skills (2 stars, last pushed 2mo ago), licensed MIT. It adds 240 tokens to every session and 4,495 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
spreadsheets
Use when creating, reading, or fixing spreadsheets (.xlsx, .csv). Covers formulas, formatting, charts, data cleaning, and handling the messy real-world files that are not actually tabular.
Excel工具
A guide for using Excel tools to read, write, and recalculate spreadsheet files. It includes a rule for treating the first row as data when a spreadsheet has no column headings.
huashu-data-pro
All-in-one data analysis and productivity assistant. Covers end-to-end workflows for data processing, analytical insights, report writing, PPT creation, and data visualisation. Always approaches tasks from an expert perspective — thinks one step ahead for the user. Proactively confirms with the user when uncertain.…
xlsx
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or…
thinkcell
Generate, update, and automate think-cell charts and elements in PowerPoint and Excel. Use ANY time the user mentions think-cell, thinkcell, or .ppttc files, or asks to create/update PowerPoint charts following think-cell conventions (waterfall, Mekko, stacked column, Gantt, Harvey ball, scatter/bubble, etc.) …
bug-report-writer
Converts rough notes, casual descriptions, console errors, or quick observations into professional, complete bug reports — exported as a formatted Excel (.xlsx) file ready for Excel, Google Sheets, Jira, or Azure DevOps. Use this skill whenever the user mentions: "write a bug report", "log a bug", "report this issue"…