Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aidotnet avatar

Exceljs

  • 138 installs
  • 84 repo stars
  • Updated January 28, 2026
  • aidotnet/moyucode

exceljs is a Claude Code skill for reading, writing and styling Excel spreadsheets in Node.js with the ExcelJS library.

About

exceljs is a Claude Code skill for reading, manipulating and writing Excel spreadsheets in Node.js using the ExcelJS library. It covers cell styling, formulas, columns and conditional formatting in TypeScript. A developer uses it to generate or parse .xlsx files from a Node backend. It supports streaming for large files.

  • Reads, writes and styles Excel files in Node.js
  • Supports formulas, cell styling and conditional formatting
  • Streams large XLSX files

Exceljs by the numbers

  • 138 all-time installs (skills.sh)
  • Ranked #294 of 688 Office & Documents skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

exceljs capabilities & compatibility

Capabilities
excel generation · spreadsheet styling · format conversion
Works with
excel
Use cases
data analysis
Pricing
Free
From the docs

What exceljs says it does

Read, manipulate, and write Excel spreadsheets with full formatting support.
SKILL.md
npm install exceljs
SKILL.md
npx skills add https://github.com/aidotnet/moyucode --skill exceljs

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs138
repo stars84
Last updatedJanuary 28, 2026
Repositoryaidotnet/moyucode

What it does

Generate or parse styled Excel spreadsheets from a Node.js or TypeScript backend.

Who is it for?

Node.js and TypeScript developers generating or parsing styled .xlsx files.

Skip if: Python-only stacks or live spreadsheet collaboration.

When should I use this skill?

You need to create or read a formatted Excel file from a Node.js backend.

What you get

A styled Excel workbook is created or parsed in Node.js with the ExcelJS API.

  • Excel workbook
  • styled spreadsheet

By the numbers

  • ExcelJS upstream cited at 14k+ stars

Files

SKILL.mdMarkdownGitHub ↗

ExcelJS Tool

Description

Read, manipulate, and write Excel spreadsheets with full formatting support.

Source

Installation

npm install exceljs

Usage Examples

Create Excel File

import ExcelJS from 'exceljs';

async function createReport() {
  const workbook = new ExcelJS.Workbook();
  workbook.creator = 'My App';
  workbook.created = new Date();
  
  const sheet = workbook.addWorksheet('Sales Report');
  
  // Define columns
  sheet.columns = [
    { header: 'ID', key: 'id', width: 10 },
    { header: 'Product', key: 'product', width: 30 },
    { header: 'Quantity', key: 'quantity', width: 15 },
    { header: 'Price', key: 'price', width: 15 },
    { header: 'Total', key: 'total', width: 15 },
  ];
  
  // Add data
  const data = [
    { id: 1, product: 'Widget A', quantity: 100, price: 9.99 },
    { id: 2, product: 'Widget B', quantity: 50, price: 19.99 },
    { id: 3, product: 'Widget C', quantity: 75, price: 14.99 },
  ];
  
  data.forEach(item => {
    sheet.addRow({
      ...item,
      total: { formula: `C${sheet.rowCount + 1}*D${sheet.rowCount + 1}` },
    });
  });
  
  await workbook.xlsx.writeFile('report.xlsx');
}

Style Cells

async function createStyledReport() {
  const workbook = new ExcelJS.Workbook();
  const sheet = workbook.addWorksheet('Styled');
  
  // Header row with styling
  const headerRow = sheet.addRow(['Name', 'Email', 'Status']);
  headerRow.eachCell(cell => {
    cell.fill = {
      type: 'pattern',
      pattern: 'solid',
      fgColor: { argb: '4F46E5' },
    };
    cell.font = { color: { argb: 'FFFFFF' }, bold: true };
    cell.alignment = { horizontal: 'center' };
    cell.border = {
      top: { style: 'thin' },
      bottom: { style: 'thin' },
    };
  });
  
  // Data rows
  const users = [
    { name: 'John', email: 'john@example.com', status: 'Active' },
    { name: 'Jane', email: 'jane@example.com', status: 'Inactive' },
  ];
  
  users.forEach(user => {
    const row = sheet.addRow([user.name, user.email, user.status]);
    
    // Conditional formatting
    const statusCell = row.getCell(3);
    statusCell.fill = {
      type: 'pattern',
      pattern: 'solid',
      fgColor: { argb: user.status === 'Active' ? '22C55E' : 'EF4444' },
    };
  });
  
  await workbook.xlsx.writeFile('styled-report.xlsx');
}

Read Excel File

async function readExcel(filePath: string) {
  const workbook = new ExcelJS.Workbook();
  await workbook.xlsx.readFile(filePath);
  
  const sheet = workbook.getWorksheet('Sheet1');
  const data: any[] = [];
  
  sheet?.eachRow((row, rowNumber) => {
    if (rowNumber === 1) return; // Skip header
    
    data.push({
      id: row.getCell(1).value,
      name: row.getCell(2).value,
      email: row.getCell(3).value,
    });
  });
  
  return data;
}

Stream Large Files

async function streamLargeExcel(data: any[], outputPath: string) {
  const workbook = new ExcelJS.stream.xlsx.WorkbookWriter({
    filename: outputPath,
    useStyles: true,
  });
  
  const sheet = workbook.addWorksheet('Data');
  sheet.columns = [
    { header: 'ID', key: 'id' },
    { header: 'Value', key: 'value' },
  ];
  
  // Stream rows (memory efficient)
  for (const item of data) {
    sheet.addRow(item).commit();
  }
  
  await workbook.commit();
}

Tags

excel, spreadsheet, xlsx, report, data-export

Compatibility

  • Codex: ✅
  • Claude Code: ✅

Related skills

FAQ

What runtime does it target?

It targets Node.js using the ExcelJS library in TypeScript.

Does it support styling and formulas?

Yes, it supports cell styling, formulas and conditional formatting.

Office & Documentsetlpipelines

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.