Working with Excel files programmatically.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add bobmatnyc/claude-mpm-skills --skill xlsx --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Xlsx?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bobmatnyc-xlsx)More formats (shields.io, HTML) on the badges page.
---
name: xlsx
description: Working with Excel files programmatically.
user-invocable: false
disable-model-invocation: true
updated_at: 2025-10-30T17:00:00Z
tags: [excel, xlsx, spreadsheet, data]
progressive_disclosure:
entry_point:
summary: "Working with Excel files programmatically."
when_to_use: "When working with xlsx or related functionality."
quick_start: "1. Review the core concepts below. 2. Apply patterns to your use case. 3. Follow best practices for implementation."
---
# Excel/XLSX Manipulation
Working with Excel files programmatically.
## Python (openpyxl)
### Reading Excel
```python
from openpyxl import load_workbook
wb = load_workbook('data.xlsx')
ws = wb.active # Get active sheet
# Read cell
value = ws['A1'].value
# Iterate rows
for row in ws.iter_rows(min_row=2, values_only=True):
print(row)
```
### Writing Excel
```python
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "Data"
# Write data
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws.append(['John', 30])
ws.append(['Jane', 25])
wb.save('output.xlsx')
```
### Formatting
```python
from openpyxl.styles import Font, PatternFill
# Bold header
ws['A1'].font = Font(bold=True)
# Background color
ws['A1'].fill = PatternFill(start_color="FFFF00", fill_type="solid")
# Number format
ws['B2'].number_format = '0.00' # Two decimals
```
### Formulas
```python
# Add formula
ws['C2'] = '=A2+B2'
# Sum column
ws['D10'] = '=SUM(D2:D9)'
```
## Python (pandas)
### Reading Excel
```python
import pandas as pd
# Read sheet
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# Read multiple sheets
dfs = pd.read_excel('data.xlsx', sheet_name=None)
```
### Writing Excel
```python
# Write DataFrame
df.to_excel('output.xlsx', index=False)
# Multiple sheets
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet1')
df2.to_excel(writer, sheet_name='Sheet2')
```
### Data Transformation
```python
# Filter
filtered = df[df['Age'] > 25]
# Group by
grouped = df.groupby('Department')['Salary'].mean()
# Pivot
pivot = df.pivot_table(values='Sales', index='Region', columns='Product')
```
## JavaScript (xlsx)
```javascript
import XLSX from 'xlsx';
// Read file
const workbook = XLSX.readFile('data.xlsx');
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
// Convert to JSON
const data = XLSX.utils.sheet_to_json(worksheet);
// Write file
const newWorksheet = XLSX.utils.json_to_sheet(data);
const newWorkbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(newWorkbook, newWorksheet, 'Data');
XLSX.writeFile(newWorkbook, 'output.xlsx');
```
## Common Operations
### CSV to Excel
```python
import pandas as pd
df = pd.read_csv('data.csv')
df.to_excel('data.xlsx', index=False)
```
### Excel to CSV
```python
df = pd.read_excel('data.xlsx')
df.to_csv('data.csv', index=False)
```
### Merging Excel Files
```python
dfs = []
for file in ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']:
df = pd.read_excel(file)
dfs.append(df)
combined = pd.concat(dfs, ignore_index=True)
combined.to_excel('merged.xlsx', index=False)
```
## Remember
- Close workbooks after use
- Handle large files in chunks
- Validate data before writing
- Use pandas for data analysis, openpyxl for formatting
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!