sheeter-engine 0.7.0

A CLI tool for converting data files between formats. v0.1.0 supports CSV <-> JSON.
Documentation

Sheeter

Convert data files between formats from the command line.

Seven formats, forty-two routes. CSV, TSV, JSON, YAML, XML, TOML, XLSX — any direction, through a single canonical hub.

Install

cargo install sheeter-engine

The installed binary is sheeter.

Usage

sheeter convert --from <FMT> --to <FMT> [--sheet NAME] <input> <output>

Formats: csv, tsv, json, yaml, xml, toml, xlsx.

# CSV → JSON
sheeter convert --from csv --to json data.csv data.json

# XLSX (multi-sheet) → CSV (one file per sheet)
sheeter convert --from xlsx --to csv report.xlsx report.csv
# writes report.Sheet1.csv, report.Sheet2.csv, ...

# XLSX → JSON (single document keyed by sheet name)
sheeter convert --from xlsx --to json report.xlsx report.json

# Extract a single sheet
sheeter convert --from xlsx --to csv --sheet Vendas report.xlsx vendas.csv

# JSON → XLSX (single sheet named Sheet1)
sheeter convert --from json --to xlsx config.json config.xlsx

How it works

Every reader produces a CanonicalValue; every writer consumes one. Adding a new format costs one reader and one writer, not N-1 pairwise converters.

Multi-sheet XLSX inputs produce one output per sheet for CSV and TSV, and a single merged document for JSON, YAML, XML, TOML, and XLSX. Output filenames use the pattern <stem>.<SheetName>.<ext>, with sheet names sanitized to filesystem-safe characters.

Versioning

This project follows Semantic Versioning 2.0.0. Changelog follows Keep a Changelog 1.1.0. Commit messages follow Conventional Commits 1.0.0.