Claude
Skill
xlsx
Extract data from Excel and CSV files
Virus-scanned
Reviewed automatically before listing.
Download
axoviq-ai-synthadoc-synthadoc_skills_xlsx-8dee0ee.zip · 1 KB
Install
skills CLI
npx skills add https://github.com/axoviq-ai/synthadoc/tree/main/synthadoc/skills/xlsx
Claude Code
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install axoviq-ai-synthadoc@llmmart
Git
git clone https://github.com/axoviq-ai/synthadoc.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole axoviq-ai/synthadoc collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
XLSX Skill
Reads .xlsx files using openpyxl and .csv files using the stdlib csv
module, returning all rows as comma-separated text.
Setup
pip install openpyxl
.csv files use only the Python standard library — no additional install required.
Standalone usage
import asyncio
from synthadoc.skills.xlsx.scripts.main import XlsxSkill
skill = XlsxSkill()
async def main():
result = await skill.extract("/path/to/data.xlsx")
print(result.text) # all rows as comma-separated text
print(result.metadata) # {"rows": N, "sheets": N} (xlsx only)
asyncio.run(main())
When this skill is used
- Source path ends with
.xlsxor.csv - User intent contains:
spreadsheet,excel,csv
Files (synthadoc)
-
scripts
-
main.py 1.4 KB
# SPDX-License-Identifier: AGPL-3.0-or-later # Copyright (C) 2026 Paul Chen / axoviq.com import openpyxl from synthadoc.skills.base import BaseSkill, ExtractedContent, SkillMeta class XlsxSkill(BaseSkill): meta = SkillMeta(name="xlsx", description="Extract data from Excel and CSV files", extensions=[".xlsx", ".csv"]) async def extract(self, source: str) -> ExtractedContent: if source.endswith(".csv"): import csv rows = [] with open(source, encoding="utf-8", newline="") as f: for row in csv.reader(f): rows.append(", ".join(row)) return ExtractedContent(text="\n".join(rows), source_path=source, metadata={}) try: wb = openpyxl.load_workbook(source, read_only=True, data_only=True) except Exception as exc: raise ValueError( f"Cannot read '{source}' as an Excel file: {exc}. " "Ensure the file is a valid .xlsx (Office Open XML) document." ) from exc parts = [] for name in wb.sheetnames: parts.append(f"## Sheet: {name}") for row in wb[name].iter_rows(values_only=True): parts.append(", ".join(str(c) for c in row if c is not None)) return ExtractedContent(text="\n".join(parts), source_path=source, metadata={"sheets": len(wb.sheetnames)}) -
__init__.py 0 B
-
-
requirements.txt 54 B
openpyxl # csv is Python stdlib — no install needed -
SKILL.md 1 KB
--- name: xlsx version: "1.0" description: Extract data from Excel and CSV files entry: script: scripts/main.py class: XlsxSkill triggers: extensions: - ".xlsx" - ".csv" intents: - "spreadsheet" - "excel" - "csv" requires: - openpyxl author: axoviq.com license: AGPL-3.0-or-later --- # XLSX Skill Reads `.xlsx` files using `openpyxl` and `.csv` files using the stdlib `csv` module, returning all rows as comma-separated text. ## Setup ```bash pip install openpyxl ``` `.csv` files use only the Python standard library — no additional install required. ## Standalone usage ```python import asyncio from synthadoc.skills.xlsx.scripts.main import XlsxSkill skill = XlsxSkill() async def main(): result = await skill.extract("/path/to/data.xlsx") print(result.text) # all rows as comma-separated text print(result.metadata) # {"rows": N, "sheets": N} (xlsx only) asyncio.run(main()) ``` ## When this skill is used - Source path ends with `.xlsx` or `.csv` - User intent contains: `spreadsheet`, `excel`, `csv`
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.