tableconvert
Convert table data between different formats using the tableconvert command line tool.
Quick Start
Multiple ways to use tableconvert:
1. Auto-detect formats from file extensions (simplest):
code
tableconvert input.csv output.json
2. Short flags:
code
tableconvert -i input.csv -o output.json
3. Space-separated format values:
code
tableconvert --from csv --to json --file input.csv
4. Traditional with equals signs:
code
tableconvert --from=markdown --to=csv --file=input.md --result=output.csv
5. stdin/stdout:
code
cat input.md | tableconvert --from=markdown --to=csv
6. With format-specific options:
code
tableconvert input.csv output.md --bold-header --align=l,c,r
7. With transformations:
code
tableconvert input.csv output.json --transpose --capitalize
Common file extensions:
- •
.md,.markdown= markdown - •
.csv= csv - •
.json= json - •
.jsonl,.jsonlines= jsonl - •
.sql= sql - •
.html,.htm= html - •
.xml= xml - •
.xlsx,.xls= excel - •
.tex,.latex= latex - •
.tmpl,.template= template - •
.wiki= mediawiki - •
.twiki= twiki - •
.txt= must specify format explicitly
Commands
tableconvert
Convert table data from one format to another.
Basic Options:
- •
--from={FORMAT}or-f={FORMAT}: Source format (auto-detected from file if omitted) - •
--to={FORMAT}or-t={FORMAT}: Target format (auto-detected from file if omitted) - •
--file={PATH}or--input={PATH}or-i={PATH}: Input file path (optional, uses stdin if omitted) - •
--result={PATH}or--output={PATH}or-o={PATH}: Output file path (optional, uses stdout if omitted) - •
--verboseor-v: Enable verbose output
Quick Options:
- •
-h, --help: Show help message - •
--help-formats: Show all supported formats and their parameters - •
--help-format={FORMAT}: Show parameters for a specific format - •
--mcp: Run as MCP (Model Context Protocol) server
Global Transformations:
- •
--transpose: Swap rows and columns - •
--delete-empty: Remove empty rows - •
--deduplicate: Remove duplicate rows - •
--uppercase: Convert all text to UPPERCASE - •
--lowercase: Convert all text to lowercase - •
--capitalize: Capitalize first letter of each cell
Examples:
code
# Auto-detect (simplest) tableconvert input.csv output.json # Short flags tableconvert -i input.csv -o output.json # Space-separated tableconvert --from csv --to json --file input.csv # With options tableconvert --from=csv --to=markdown --file=input.csv --align=l,c,r --bold-header # With transformations tableconvert input.csv output.json --transpose --capitalize
tableconvert --help-formats
Get information about supported formats and their parameters.
Example:
code
tableconvert --help-formats
Or for a specific format:
code
tableconvert --help-format=markdown
Supported Formats
| Format | Description | Common Use |
|---|---|---|
| mysql | MySQL query output | Database schema |
| csv | Comma-separated values | Spreadsheet data |
| json | JSON (object, 2d, column, keyed modes) | API data |
| jsonl | JSON Lines | Streaming data |
| markdown | Markdown tables | Documentation |
| html | HTML tables | Web pages |
| sql | SQL INSERT statements | Database imports |
| excel | Excel files | Spreadsheet files |
| xml | XML format | Structured data |
| latex | LaTeX tables | Academic papers |
| mediawiki | MediaWiki tables | Wiki content |
| twiki | TWiki/TracWiki format | Wiki content |
| template | Custom templates | Custom output |
Format-Specific Options
Format-specific options are passed as flags without values (true) or with values:
Markdown
- •
--align=l,c,r: Text alignment (l, c, r) - columns separated by comma - •
--bold-header: Make header bold - •
--bold-first-column: Bold first column - •
--escape: Escape Markdown characters - •
--pretty: Pretty-print with calculated column widths (default: true)
CSV
- •
--first-column-header: Use first column as headers - •
--bom: Add Byte Order Mark - •
--delimiter=TAB: Value delimiter (COMMA, TAB, SEMICOLON, PIPE, SLASH, HASH)
JSON
- •
--format=object: Output format (object, 2d, column, keyed) - •
--minify: Minify JSON output - •
--parsing-json: Parse input as JSON
SQL
- •
--one-insert: Multiple rows in one INSERT - •
--replace: Use REPLACE instead of INSERT - •
--dialect=mysql: SQL dialect (none, mysql, oracle, mssql, postgresql) - •
--table=tablename: Table name
HTML
- •
--first-column-header: Use first column as headers - •
--div: Use div instead of table - •
--minify: Minify HTML - •
--thead: Include thead/tbody tags
Excel
- •
--first-column-header: Use first column as headers - •
--sheet-name=Sheet1: Excel sheet name - •
--auto-width: Auto-adjust column widths - •
--text-format: Force text format (default: true)
LaTeX
- •
--bold-first-column: Bold first column - •
--bold-first-row: Bold first row - •
--borders=1111,1111: Border style - •
--caption="Table Caption": Table caption - •
--escape: Escape LaTeX characters (default: true) - •
--ht: Place here or top of page - •
--label=table:label: Table label - •
--location=above: Caption location (above, below) - •
--mwe: Minimal working example - •
--table-align=centering: Table alignment (centering, raggedleft, raggedright) - •
--text-align=l: Text alignment (l, c, r)
MediaWiki
- •
--first-row-header: Use first row as headers - •
--minify: Minify MediaWiki table - •
--sort: Make table sortable
XML
- •
--minify: Minify XML - •
--root-element=dataset: Root element tag - •
--row-element=record: Row element tag - •
--declaration: Include XML declaration (default: true)
Template
- •
--template=file.tmpl: Template file path
ASCII
- •
--style=box: Table style (box, plus, dot, bubble)
Global Transformations
Apply these to any format conversion:
- •
--transpose: Swap rows and columns - •
--delete-empty: Remove empty rows - •
--deduplicate: Remove duplicate rows - •
--uppercase: Convert all text to UPPERCASE - •
--lowercase: Convert all text to lowercase - •
--capitalize: Capitalize first letter of each cell
Example with transformations:
code
tableconvert --from=csv --to=json --file=input.csv --uppercase --deduplicate
Usage Examples
MySQL to Markdown (auto-detect)
code
tableconvert mysql.txt output.md --bold-header
CSV to JSON with options
code
tableconvert input.csv output.json --minify --format=object
SQL to CSV with transformation
code
tableconvert input.sql output.csv --table=users --capitalize
Get format info
code
tableconvert --help-format=markdown
Using short flags
code
tableconvert -i data.csv -o data.json -v
Notes
- •Format selection: Auto-detected from file extensions, or specify with
--from/--to - •.txt files: Must specify format explicitly (not auto-detected)
- •Input data must be properly formatted for the source format
- •Special characters are automatically escaped where needed
- •UTF-8 characters are handled correctly
- •Use
tableconvert --help-formatsto see all available options for a format - •All options from
docs/arguments.mdare supported
Common Patterns
Converting database schema (auto-detect):
code
tableconvert schema.txt output.md --bold-header --escape
Creating SQL inserts from data:
code
tableconvert data.csv output.sql --table=users --one-insert --dialect=mysql
Generating HTML tables:
code
tableconvert data.json output.html --thead --minify=false
Excel to Markdown for docs:
code
tableconvert data.xlsx output.md --bold-header --align=l,c,r
Quick pipe conversion:
code
cat data.csv | tableconvert --from csv --to json --uppercase