본문으로 건너뛰기
cccskills
무료GitHub에 공개

xlsx

Create or edit Excel workbooks with updateable formulas, multiple sheets, readable column widths, and number formats. Scan formulas for common reference and division risks before delivery; calculation results require opening the file in Excel or Google Sheets.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Use this skill whenever the user asks for an Excel spreadsheet, a .xlsx file, or a workbook with formulas/pivots/multiple sheets — creating one from scratch or editing an existing one. Covers the rule that computed values must be written as real Excel formulas (never hardcoded numbers), and a static formula-safety check. Formulas are NOT recalculated in this environment — see 'Not supported'.

연동 도구Excel
설치 방법 보기

이럴 때 유용합니다

  • Creating a sales workbook with total formulas
  • Adding percentages and running balances
  • Linking values across worksheets
  • Formatting and checking an existing workbook

포함된 파일(3)

  • SKILL.md7.1 KB
  • scripts/verify_formulas.py3.5 KB
  • scripts/verify_formulas.ts5.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Excel spreadsheets (.xlsx)

Quick Reference

TaskDefault (Node)Fallback (Python)
Create / edit a workbookexceljs — write a TypeScript program (packages: ["exceljs"]) and run it via your coding tool; pre-installed in the standard sandbox imageopenpyxl — reach for this only when the workbook is a byproduct of a larger pandas-based analysis already running in Python (see data-analysis), not as a first choice
Bulk tabular data in/outexceljs (worksheet.addRows(records))pandas (pd.read_excel/DataFrame.to_excel) when the data is already a DataFrame
Static formula sanity-checknode skills/xlsx/scripts/verify_formulas.ts <file.xlsx> (via tsx, already installed by the sandbox's TypeScript runtime)python skills/xlsx/scripts/verify_formulas.py <file.xlsx>

Default to exceljs in TypeScript for any new spreadsheet-creation task, per this environment's Node-first policy for office-document generation — reach for openpyxl/pandas only when the workbook is genuinely a byproduct of Python-side data work you're already doing (e.g. exporting a data-analysis result), not as a starting point. Both are already installed/allowlisted — no extra setup either way.

The one rule that matters most: write real formulas, not computed values

When a cell's value is the result of a calculation the user will want to keep updating (a total, a percentage, a lookup), write it as an actual Excel formula, never as the number your code computed on the JS/Python side. A hardcoded number looks correct today but silently goes stale the moment the user edits an input cell — which defeats the entire purpose of giving them a spreadsheet instead of a static table. This applies to totals, subtotals, percentages-of-total, running balances, and any lookup/reference between sheets.

In exceljs, a formula is a cell value shaped as an object, not a string prefixed with =:

worksheet.getCell("B10").value = { formula: "SUM(B2:B9)" };

Exception: raw input data (the numbers the user gave you, or that you extracted from a source document) should be hardcoded values — only derived values need to be formulas.

Creating / editing with exceljs

import ExcelJS from "exceljs";

const workbook = new ExcelJS.Workbook();
const sheet = workbook.addWorksheet("Report", {
  views: [{ state: "frozen", ySplit: 1 }], // freeze the header row
});

sheet.columns = [
  { header: "Item", key: "item", width: 32 },
  { header: "Amount", key: "amount", width: 14, style: { numFmt: "#,##0.00" } },
];

sheet.addRows([{ item: "Widgets", amount: 1200 }, { item: "Gadgets", amount: 830 }]);
sheet.getCell(`B${sheet.rowCount + 1}`).value = { formula: `SUM(B2:B${sheet.rowCount})` };

await workbook.xlsx.writeFile("report.xlsx");
  • Set explicit column widths (width in the columns definition, or worksheet.getColumn(n).width = ...) and number formats (cell.numFmt = "#,##0.00" / "0.0%") — an unformatted sheet of raw numbers reads as unfinished.
  • Freeze header rows for any sheet with more than ~15 data rows: worksheet.views = [{ state: "frozen", ySplit: 1 }] (add xSplit too to also freeze leading columns).
  • When writing a formula whose range depends on the data you just wrote (e.g. a SUM over however many rows got added), compute the range bounds from worksheet.rowCount/actualRowCount, never a hardcoded row count — otherwise the formula silently omits rows if the dataset grows.
  • Sheet/tab names: Excel forbids : \ / ? * [ ] and a 31-character limit — sanitize any user-provided sheet name before calling workbook.addWorksheet(name).
  • exceljs has no auto-fit for column widths — if content length varies a lot, compute a width from the max string length in that column yourself before setting it, rather than leaving a default that truncates.

Reading a workbook

const workbook = new ExcelJS.Workbook();
await workbook.xlsx.readFile("input.xlsx");
const sheet = workbook.getWorksheet("Sheet1"); // or workbook.worksheets[0]
sheet.eachRow({ includeEmpty: false }, (row) => { /* row.values, row.getCell(n) */ });

For heavy tabular reshaping (multi-file joins, group-by/aggregate before writing the result out), it's reasonable to read via pandas.read_excel into a DataFrame instead — pandas' reshaping API is more ergonomic than hand-rolling the equivalent in exceljs, and the DataFrame can still be written out via pandas.DataFrame.to_excel (or handed to exceljs if you need formulas/styling on the way out that pandas doesn't support).

Verifying formulas without a recalculation engine

This environment cannot recalculate formulas (no LibreOffice/Excel to open the file and re-run its calculation engine), so a formula's result is never re-verified — only its shape. scripts/verify_formulas.ts (or the Python equivalent, scripts/verify_formulas.py — both inspect the same on-disk .xlsx format and produce equivalent results, so use whichever matches the sandbox session you already have open) does a best-effort static scan for the most common formula footguns:

  • Division formulas whose denominator cell reference is currently blank or 0 in the data you wrote — a likely future #DIV/0! the moment that cell is read.
  • A range reference (e.g. SUM(B2:B100)) that extends beyond the sheet's actual used range — usually a sign the range was hardcoded rather than computed from the data.
  • Any cell whose cached value (if the file was previously touched by a real spreadsheet app) is itself an Excel error token (#REF!, #DIV/0!, #VALUE!, #N/A, #NAME?, #NULL!, #NUM!).

Run it after writing the file, before handing it to the user: npx tsx skills/xlsx/scripts/verify_formulas.ts output.xlsx. It exits non-zero and prints every flagged cell if it finds anything.

Independently cross-check any number you report in your response (e.g. "the total is $45,230") by actually computing it in code — since the formula itself is never executed in this environment, the only way to be confident the number you're telling the user about is correct is to have actually computed it yourself, not just written a formula that should compute it.

Not supported in this environment

  • Formula recalculation via a LibreOffice macro (Anthropic's reference implementation's approach) — not available; formulas are written correctly but left uncalculated, and Excel/Google Sheets will calculate them on first open.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Build or extend a PipesHub connector, an integration that syncs content from an external service or database. The skill guides API research, design decisions, permission mapping, implementation, testing, and documentation of what was actually verified.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Build a connector for an external service
  • Add a new content type to an existing connector
  • Review how source permissions map to PipesHub
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

Load, clean, summarize, and join tabular data from CSV, Excel, JSON, or database exports using pandas. Check missing values, data types, and row counts, then independently verify key figures before reporting numbers printed by the code.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Summarizing revenue by region
  • Cleaning missing values and duplicate rows
  • Joining files by customer ID
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

Turn data into charts suited to comparisons, trends, distributions, relationships, or shares. Add clear titles, units, and accessible colors, then export a static PNG or interactive HTML with hover details and zoom controls.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Charting monthly revenue trends
  • Comparing totals across regions or categories
  • Examining order-size distributions
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

docx

무료

Create Word reports, memos, letters, and proposals with headings, tables, lists, and a table of contents. Also supports targeted edits to existing .docx files and reading or summarizing their text and tables.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Create a Word report or proposal
  • Edit selected passages in an existing document
  • Read and summarize document text and tables
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

Choose suitable libraries for converting spreadsheet data and image files, or extracting text and tables from documents. Covers supported format pairs and identifies conversions unavailable in the described environment before work begins.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Convert tabular data between CSV, Excel, and JSON
  • Change image formats or resize images
  • Extract text from Word documents
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

Unpack Word and PowerPoint files to inspect and edit their internal XML, the markup that stores document content. Repack targeted changes with XML syntax checks while preserving the original archive entry order.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Make a small edit inside a Word or PowerPoint file
  • Investigate errors in generated document XML
  • Inspect internal document parts and image references
pipeshub-ai/pipeshub-ai3.8천2026년 10월 22일 업데이트

pipeshub-ai의 스킬 모두 보기

이 스킬의 문제 신고