
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)
exceljs capabilities & compatibility
- Capabilities
- excel generation · spreadsheet styling · format conversion
- Works with
- excel
- Use cases
- data analysis
- Pricing
- Free
What exceljs says it does
Read, manipulate, and write Excel spreadsheets with full formatting support.
npm install exceljs
npx skills add https://github.com/aidotnet/moyucode --skill exceljsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 138 |
|---|---|
| repo stars | ★ 84 |
| Last updated | January 28, 2026 |
| Repository | aidotnet/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
ExcelJS Tool
Description
Read, manipulate, and write Excel spreadsheets with full formatting support.
Source
- Repository: exceljs/exceljs
- License: MIT
Installation
npm install exceljsUsage 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.