---
name: excel-operations
description: Read, write, and manipulate Excel (.xlsx) and CSV files
---
## When to use
Use when the user asks to:
- Read data from Excel or CSV files
- Create new spreadsheets
- Update existing spreadsheet data
- Perform calculations or data transformations
- Export data to CSV/Excel format
- Validate spreadsheet structure
## Workflow
### 1. Identify the file
Determine file path and format (.xlsx, .csv, .tsv).
### 2. Read the data
OpenClaw's `read` is for text files. For Excel/CSV:
**For CSV** (plain text):
```bash
read path/to/data.csv
```
**For .xlsx** (binary): Use Python or other tools:
```bash
python -c "
import pandas as pd, json, sys;
df = pd.read_excel('data.xlsx');
print(df.to_json(orient='records'))
"
```
Or install `xlsx2csv` and convert first:
```bash
xlsx2csv data.xlsx temp.csv
read temp.csv
```
### 3. Process the data
- Parse into structured format (list of objects, 2D array)
- Validate headers/columns if needed
- Perform transformations (filter, map, aggregate)
### 4. Write results
**For CSV**:
```bash
write output.csv --data "$csv_string"
```
**For .xlsx**: Use Python:
```bash
python -c "
import pandas as pd, json, sys;
data = json.loads(sys.argv[1]);
pd.DataFrame(data).to_excel('output.xlsx', index=False)
" "$structured_data"
```
## Supported Formats
- **.xlsx** (Excel Open XML) — full support for sheets, formulas, formatting
- **.csv** (Comma-separated) — plain text, delimiter detection
- **.tsv** (Tab-separated) — tab delimiter
## Common Operations
### Read specific sheet
```bash
read file.xlsx --sheet "Sheet2"
```
### Read with range
```bash
read file.xlsx --range "A1:D100"
```
### Write with formatting
```bash
write report.xlsx \
--data "$table" \
--header true \
--autofit columns
```
### Append to existing file
```bash
write file.xlsx --data "$new_rows" --append true
```
## Data Structures
**Reading returns**:
```json
{
"headers": ["Name", "Email", "Score"],
"rows": [
{"Name": "Alice", "Email": "a@example.com", "Score": 95},
...
]
}
```
**Writing accepts**:
- JSON array of objects
- 2D array (array of arrays)
- CSV string (if format=csv)
## Examples
User: "Tạo báo cáo điểm từ scores.csv"
Assistant:
1. Đọc scores.csv
2. Tính toán điểm trung bình, xếp loại
3. Ghi vào report.xlsx với định dạng đẹp
4. Trả về đường dẫn file và tóm tắt kết quả
Ghi đè file gốc mà không backup, không thông báo.
## Error Handling
- **File not found**: Kiểm tra đường dẫn, dùng `glob` để tìm
- **Format mismatch**: Đảm bảo file đúng định dạng, kiểm tra extension
- **Large files**: Có thể cần chunk processing, kiểm tra memory limits
- **Corrupted data**: Catch parse errors, report specific row/column
## Validation Checklist
- [ ] File exists and is readable
- [ ] Format matches extension
- [ ] Headers are present and correct
- [ ] Data types are correct (numbers, dates, strings)
- [ ] No missing values in required columns
- [ ] Output file is well-formed and complete