Token导航 LogoToken导航

Agent Skill · 前端设计

spreadsheet-builder(电子表格生成器)

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

spreadsheet-builder 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为只读;许可证为 MIT,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 515。

总安装 20,440周安装 597GitHub Stars 公开资料未说明下载 7,791核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:spreadsheet-builder(电子表格生成器)
来源仓库:https://github.com/eddiebe147/claude-settings
仓库路径:skills/spreadsheet-builder
安装命令:
npx skills add https://github.com/eddiebe147/claude-settings --skill 'Spreadsheet Builder'
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/eddiebe147/claude-settings --skill 'Spreadsheet Builder'

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

电子表格生成器用于构建交互式数据展示界面。适合在 React、Vue 等项目中嵌入动态表格组件。支持单元格格式化、公式计算和事件绑定。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。使用时需遵循项目现有设计系统和路由结构。

spreadsheet-builder 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/spreadsheet-builder

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/eddiebe147/claude-settings --skill 'Spreadshee…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它标注为只读,先用只读任务试一次,确认行为符合预期再扩大使用范围。

常见问题

6 条

spreadsheet-builder 怎么安装?

在终端执行 npx skills add https://github.com/eddiebe147/claude-settings --skill 'Spreadsheet Builder'。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

spreadsheet-builder 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

spreadsheet-builder 需要什么权限?

权限级别是只读。该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

spreadsheet-builder 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

spreadsheet-builder 用的人多吗?

公开数据是累计安装 20,440 次,近一周安装 597 次,下载 7,791 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

spreadsheet-builder 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
spreadsheet-builder

电子表格生成器 · 本页

20,440—只读MIT通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Spreadsheet Builder

The Spreadsheet Builder skill enables creation of professional Excel (.xlsx) and CSV files with advanced formatting, formulas, charts, and data analysis features. Using libraries like exceljs and xlsx, this skill handles everything from simple data exports to complex financial models and dashboards.

Generate data reports, financial statements, inventory lists, analysis dashboards, and any tabular data visualization. Support for multiple sheets, cell styling, conditional formatting, formulas, pivot tables, and charts makes this a comprehensive solution for spreadsheet automation.

Core Workflows

Workflow 1: Create Basic Excel Workbook

Purpose: Build a simple Excel file with formatted data

Steps:

  1. Import exceljs and create Workbook instance
  2. Add worksheet with a name
  3. Define columns with headers and widths
  4. Add data rows
  5. Apply basic formatting (fonts, colors, alignment)
  6. Set column widths and row heights
  7. Write to.xlsx file

Implementation:

const ExcelJS = require('exceljs');

async function createBasicWorkbook(data, outputPath) {
  const workbook = new ExcelJS.Workbook();
  const worksheet = workbook.addWorksheet('Sales Data');

  // Define columns
  worksheet.columns = [
    { header: 'Date', key: 'date', width: 12 },
    { header: 'Product', key: 'product', width: 25 },
    { header: 'Quantity', key: 'quantity', width: 10 },
    { header: 'Price', key: 'price', width: 12 },
    { header: 'Total', key: 'total', width: 12 }
  ];

  // Style header row
  worksheet.getRow(1).font = { bold: true, size: 12 };
  worksheet.getRow(1).fill = {
    type: 'pattern',
    pattern: 'solid',
    fgColor: { argb: 'FF4472C4' }
  };
  worksheet.getRow(1).font = { color: { argb: 'FFFFFFFF' }, bold: true };

  // Add data
  data.forEach(row => {
    worksheet.addRow(row);
  });

  // Format currency columns
  worksheet.getColumn('price').numFmt = '$#,##0.00';
  worksheet.getColumn('total').numFmt = '$#,##0.00';

  await workbook.xlsx.writeFile(outputPath);
}

Workflow 2: Add Formulas and Calculations

Purpose: Create spreadsheets with automatic calculations and formulas

Steps:

  1. Create workbook and worksheet
  2. Add data columns
  3. Insert formula cells (SUM, AVERAGE, IF, VLOOKUP, etc.)
  4. Use cell references for dynamic calculations
  5. Add conditional formulas
  6. Create calculated columns
  7. Add totals and subtotals

Implementation:

async function createWithFormulas(data, outputPath) {
  const workbook = new ExcelJS.Workbook();
  const worksheet = workbook.addWorksheet('Financial Report');

  worksheet.columns = [
    { header: 'Month', key: 'month', width: 12 },
    { header: 'Revenue', key: 'revenue', width: 15 },
    { header: 'Expenses', key: 'expenses', width: 15 },
    { header: 'Profit', key: 'profit', width: 15 },
    { header: 'Margin %', key: 'margin', width: 12 }
  ];

  // Add data rows
  data.forEach((row, index) => {
    const rowIndex = index + 2; // Account for header row
    worksheet.addRow({
      month: row.month,
      revenue: row.revenue,
      expenses: row.expenses,
      profit: { formula: `B${rowIndex}-C${rowIndex}` }, // Revenue - Expenses
      margin: { formula: `D${rowIndex}/B${rowIndex}` }  // Profit / Revenue
    });
  });

  // Add totals row
  const lastRow = data.length + 2;
  worksheet.addRow({
    month: 'TOTAL',
    revenue: { formula: `SUM(B2:B${lastRow - 1})` },
    expenses: { formula: `SUM(C2:C${lastRow - 1})` },
    profit: { formula: `SUM(D2:D${lastRow - 1})` },
    margin: { formula: `D${lastRow}/B${lastRow}` }
  });

  // Format totals row
  worksheet.getRow(lastRow).font = { bold: true };
  worksheet.getRow(lastRow).fill = {
    type: 'pattern',
    pattern: 'solid',
    fgColor: { argb: 'FFE7E6E6' }
  };

  // Number formatting
  worksheet.getColumn('revenue').numFmt = '$#,##0.00';
  worksheet.getColumn('expenses').numFmt = '$#,##0.00';
  worksheet.getColumn('profit').numFmt = '$#,##0.00';
  worksheet.getColumn('margin').numFmt = '0.00%';

  await workbook.xlsx.writeFile(outputPath);
}

Workflow 3: Apply Conditional Formatting

Purpose: Highlight cells based on rules and thresholds

Steps:

  1. Create workbook with data
  2. Define conditional formatting rules
  3. Apply color scales for value ranges
  4. Use data bars for visual comparison
  5. Add icon sets for status indicators
  6. Highlight top/bottom values
  7. Apply custom formula-based rules

Implementation:

async function addConditionalFormatting(data, outputPath) {
  const workbook = new ExcelJS.Workbook();
  const worksheet = workbook.addWorksheet('Performance');

  // Add data...
  worksheet.columns = [
    { header: 'Employee', key: 'name', width: 20 },
    { header: 'Sales', key: 'sales', width: 15 },
    { header: 'Target', key: 'target', width: 15 },
    { header: 'Performance', key: 'performance', width: 15 }
  ];

  data.forEach(row => worksheet.addRow(row));

  // Color scale: Green (high) to Red (low)
  worksheet.addConditionalFormatting({
    ref: 'B2:B100',
    rules: [
      {
        type: 'colorScale',
        cfvo: [
          { type: 'min' },
          { type: 'percentile', value: 50 },
          { type: 'max' }
        ],
        color: [
          { argb: 'FFF8696B' }, // Red
          { argb: 'FFFFEB84' }, // Yellow
          { argb: 'FF63BE7B' }  // Green
        ]
      }
    ]
  });

  // Data bars for performance column
  worksheet.addConditionalFormatting({
    ref: 'D2:D100',
    rules: [
      {
        type: 'dataBar',
        minLength: 0,
        maxLength: 100,
        color: { argb: 'FF638EC6' }
      }
    ]
  });

  // Highlight values above target
  worksheet.addConditionalFormatting({
    ref: 'B2:B100',
    rules: [
      {
        type: 'expression',
        formulae: ['B2>C2'], // Sales > Target
        style: {
          fill: {
            type: 'pattern',
            pattern: 'solid',
            bgColor: { argb: 'FFC6EFCE' }
          }
        }
      }
    ]
  });

  await workbook.xlsx.writeFile(outputPath);
}

Workflow 4: Create Charts and Visualizations

Purpose: Add charts to visualize data trends and comparisons

Steps:

  1. Create workbook with data
  2. Add data worksheet
  3. Create chart worksheet or embed in data sheet
  4. Define chart type (bar, line, pie, scatter, etc.)
  5. Set data ranges for series
  6. Configure chart title, axes, legend
  7. Apply styling and colors
  8. Position chart on worksheet

Implementation:

async function createWithChart(data, outputPath) {
  const workbook = new ExcelJS.Workbook();
  const worksheet = workbook.addWorksheet('Sales');

  // Add data
  worksheet.columns = [
    { header: 'Month', key: 'month', width: 12 },
    { header: 'Sales', key: 'sales', width: 15 }
  ];

  data.forEach(row => worksheet.addRow(row));

  // Create chart (Note: exceljs has limited chart support, consider using xlsx-chart)
  // For full chart support, you may need to use Excel templates or officegen library

  // Alternative: Add chart using worksheet image
  // Or use a charting library to generate image, then embed

  await workbook.xlsx.writeFile(outputPath);
}

// For advanced charts, consider using officegen or generating chart images

Workflow 5: Multi-Sheet Workbook with Links

Purpose: Create complex workbooks with multiple related sheets

Steps:

  1. Create workbook
  2. Add multiple worksheets (Summary, Details, Raw Data, etc.)
  3. Create cross-sheet formulas and references
  4. Add hyperlinks between sheets
  5. Protect sheets with passwords
  6. Hide/show sheets as needed
  7. Set active sheet and freeze panes

Implementation:

async function createMultiSheetWorkbook(data, outputPath) {
  const workbook = new ExcelJS.Workbook();

  // Summary sheet
  const summary = workbook.addWorksheet('Summary');
  summary.columns = [
    { header: 'Metric', key: 'metric', width: 25 },
    { header: 'Value', key: 'value', width: 15 }
  ];

  summary.addRow({ metric: 'Total Sales', value: { formula: "SUM(Details!B:B)" } });
  summary.addRow({ metric: 'Average Order', value: { formula: "AVERAGE(Details!B:B)" } });
  summary.addRow({ metric: 'Total Orders', value: { formula: "COUNTA(Details!A:A)-1" } });

  // Details sheet
  const details = workbook.addWorksheet('Details');
  details.columns = [
    { header: 'Order ID', key: 'id', width: 12 },
    { header: 'Amount', key: 'amount', width: 15 },
    { header: 'Date', key: 'date', width: 12 }
  ];

  data.forEach(row => details.addRow(row));

  // Freeze header row
  details.views = [
    { state: 'frozen', xSplit: 0, ySplit: 1 }
  ];

  // Add hyperlink from summary to details
  summary.getCell('A1').value = {
    text: 'View Details',
    hyperlink: '#Details!A1',
    tooltip: 'Jump to Details sheet'
  };
  summary.getCell('A1').font = { color: { argb: 'FF0000FF' }, underline: true };

  // Set Summary as active sheet
  summary.state = 'visible';
  details.state = 'visible';

  await workbook.xlsx.writeFile(outputPath);
}

Workflow 6: Export to CSV

Purpose: Create simple CSV files for data exchange

Steps:

  1. Format data as array of objects or arrays
  2. Define headers if needed
  3. Convert to CSV format
  4. Handle special characters and quotes
  5. Set delimiter (comma, semicolon, tab)
  6. Write to file with proper encoding

Implementation:

const fs = require('fs');

function createCSV(data, outputPath, options = {}) {
  const delimiter = options.delimiter || ',';
  const headers = options.headers || Object.keys(data[0]);

  // Create header row
  let csv = headers.join(delimiter) + '\n';

  // Add data rows
  data.forEach(row => {
    const values = headers.map(header => {
      let value = row[header] || '';
      // Escape quotes and wrap in quotes if contains delimiter or newline
      if (typeof value === 'string' && (value.includes(delimiter) || value.includes('\n') || value.includes('"'))) {
        value = '"' + value.replace(/"/g, '""') + '"';
      }
      return value;
    });
    csv += values.join(delimiter) + '\n';
  });

  fs.writeFileSync(outputPath, csv, 'utf8');
}

Quick Reference

ActionCommand/Trigger
Create Excel workbook"create excel file with [data]"
Generate CSV"export [data] to csv"
Add formulas"add formulas to spreadsheet"
Apply formatting"format excel cells [style]"
Create chart"add chart to workbook"
Multi-sheet workbook"create workbook with [sheets]"
Conditional formatting"apply conditional formatting"
Freeze panes"freeze header row"
Protect sheet"password protect [sheet]"

Best Practices

  • Data Validation: Validate data types before writing to cells
  • Number Formatting: Apply appropriate number formats (currency, percentage, date)
  • Column Widths: Set widths based on content for readability
  • Freeze Panes: Freeze header rows for scrollable data
  • Named Ranges: Use named ranges for formulas in complex workbooks
  • Templates: Create templates for repeated report types
  • Memory Management: Use streaming for very large datasets (>100k rows)
  • Error Handling: Wrap formula creation in try-catch for invalid references
  • CSV Encoding: Use UTF-8 BOM for international characters
  • Performance: Batch cell operations rather than individual cell writes
  • Testing: Verify formulas calculate correctly after file creation
  • Documentation: Comment complex formulas within cells

Common Patterns

Inventory Report:

worksheet.columns = [
  { header: 'SKU', key: 'sku', width: 15 },
  { header: 'Product', key: 'product', width: 30 },
  { header: 'Quantity', key: 'qty', width: 12 },
  { header: 'Unit Price', key: 'price', width: 15 },
  { header: 'Total Value', key: 'value', width: 15 }
];

data.forEach((item, idx) => {
  const row = idx + 2;
  worksheet.addRow({
    sku: item.sku,
    product: item.product,
    qty: item.qty,
    price: item.price,
    value: { formula: `C${row}*D${row}` }
  });
});

Financial Dashboard:

// Summary sheet with KPIs
summary.addRow({ metric: 'Revenue', value: { formula: "SUM(Data!B:B)" } });
summary.addRow({ metric: 'Expenses', value: { formula: "SUM(Data!C:C)" } });
summary.addRow({ metric: 'Net Profit', value: { formula: "B2-B3" } });
summary.addRow({ metric: 'Profit Margin', value: { formula: "B4/B2" } });
summary.getColumn('value').numFmt = '$#,##0.00';

Dependencies

Install required packages:

npm install exceljs
npm install xlsx      # Alternative library
npm install csv-writer # For CSV generation

Error Handling

  • Invalid Formulas: Validate formula syntax before assignment
  • Cell References: Ensure referenced cells exist
  • File Permissions: Handle write errors gracefully
  • Memory Limits: Use streaming mode for files >50MB
  • Data Types: Coerce data to appropriate types (number, string, date)
  • Encoding Issues: Ensure UTF-8 encoding for international characters

Performance Tips

  • Use worksheet.addRows() instead of multiple addRow() calls
  • Set column properties before adding data
  • Avoid reading cells unnecessarily
  • Use streaming write for large datasets
  • Batch style operations
  • Pre-calculate values instead of formulas when possible for static data

Advanced Features

Streaming Large Files:

const workbook = new ExcelJS.stream.xlsx.WorkbookWriter({ filename: outputPath });
const worksheet = workbook.addWorksheet('Large Data');
// Add data in chunks
worksheet.commit();
workbook.commit();

Data Validation:

worksheet.getCell('A2').dataValidation = {
  type: 'list',
  allowBlank: true,
  formulae: ['"Option1,Option2,Option3"']
};

Protection:

await worksheet.protect('password', {
  selectLockedCells: true,
  selectUnlockedCells: true
});

平台分布

Claude Code

28.62%
按下载量换算2,230

OpenCode

25.61%
按下载量换算1,995

Gemini CLI

18.46%
按下载量换算1,438

Antigravity

13.45%
按下载量换算1,048

Cursor

9%
按下载量换算701

windsurf

3.51%
按下载量换算273

安全审计

Gen Agent Trust Hub

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

继续浏览同类 Skills