convertFile

March 28, 2026 ยท View on GitHub

Convert files between spreadsheet, document, and page-layout formats.

Usage

openGyver convertFile <input-file> [flags]

Arguments

ArgumentRequiredDescription
input-fileYesPath to the input file

Flags

FlagShortTypeDefaultDescription
--output-ostringAuto-detectedOutput file path (default: input name with new extension)
--sheetstring""Sheet name for XLSX/Numbers files (default: first sheet)
--delimiterstring""CSV delimiter: comma, tab, semicolon, pipe, or any single character (default: auto-detected)
--quiet-qboolfalseSuppress output messages (for piping)
--json-jboolfalseOutput result as JSON
--help-hboolfalseShow help for convertFile

Supported Formats

CategoryExtensions
Spreadsheet.csv, .tsv, .xlsx, .numbers
Document.txt, .text, .md, .markdown, .html, .htm, .docx
Page layout.pdf, .ps (PostScript)

Supported Conversions

Spreadsheet Conversions

FromToStatus
CSVXLSXFully implemented
XLSXCSVFully implemented
CSVNumbersStub (workaround provided)
XLSXNumbersStub (workaround provided)
NumbersCSVStub (workaround provided)
NumbersXLSXStub (workaround provided)

Document Conversions

FromToDescription
MarkdownHTMLRendered with full CommonMark support
HTMLMarkdownConverted back to clean Markdown
MarkdownTextStripped of all formatting
HTMLTextTags stripped, text extracted
DOCXTextText extracted from Word XML
DOCXHTMLParagraphs converted to HTML
DOCXMarkdownParagraphs converted to Markdown
TextHTMLWrapped in <pre> block
TextMarkdownWrapped in code fence
TextDOCXPlain paragraphs in a Word document
MarkdownDOCXConverted via HTML to Word
HTMLDOCXParagraphs extracted into Word document

PDF / PostScript Output

FromToDescription
TextPDFPlain text rendered to PDF
MarkdownPDFRendered via HTML to a formatted PDF
HTMLPDFParsed and rendered to PDF
CSVPDFTabular layout with headers
XLSXPDFTabular layout with headers
DOCXPDFText extracted and rendered to PDF
TextPSPostScript text output
MarkdownPSRendered to PostScript
CSVPSTabular PostScript output

Default Output Formats

When --output is not specified, the default output extension is chosen based on the input:

Input FormatDefault Output
CSV.xlsx
XLSX.csv
Numbers.csv
Text.pdf
Markdown.html
HTML.md
DOCX.pdf

Examples

# Convert CSV to Excel
openGyver convertFile data.csv -o report.xlsx

# Convert Excel to PDF with tabular layout
openGyver convertFile report.xlsx -o report.pdf

# Render Markdown to HTML
openGyver convertFile README.md -o README.html

# Render Markdown to PDF
openGyver convertFile README.md -o README.pdf

# Convert HTML back to Markdown
openGyver convertFile page.html -o page.md

# Render HTML to PDF
openGyver convertFile page.html -o page.pdf

# Convert plain text to PDF
openGyver convertFile notes.txt -o notes.pdf

# Convert plain text to Word document
openGyver convertFile notes.txt -o notes.docx

# Convert Word document to PDF
openGyver convertFile report.docx -o report.pdf

# Extract text from Word document
openGyver convertFile report.docx -o report.txt

# Convert CSV to PostScript
openGyver convertFile data.csv -o data.ps

# Use a specific CSV delimiter
openGyver convertFile data.csv -o data.xlsx --delimiter semicolon

# Use tab as delimiter
openGyver convertFile data.tsv -o data.xlsx --delimiter tab

# Specify a sheet name for multi-sheet XLSX
openGyver convertFile report.xlsx -o report.csv --sheet "Q4 Data"

# Quiet mode for scripting
openGyver convertFile data.csv -o data.xlsx -q

# JSON output for automation
openGyver convertFile README.md -o README.html -j

# Pipe JSON to check output path
openGyver convertFile data.csv -o data.xlsx -j | jq '.output'

# Convert Word to Markdown
openGyver convertFile document.docx -o document.md

# Default output (CSV -> XLSX when -o omitted)
openGyver convertFile data.csv

JSON Output Format

{
  "success": true,
  "input": "data.csv",
  "output": "report.xlsx",
  "input_format": "csv",
  "output_format": "xlsx"
}

Notes

  • The input format is auto-detected from the file extension.
  • If --output is not specified, a sensible default extension is chosen (e.g., CSV defaults to XLSX).
  • The CSV delimiter is auto-detected from the file content (comma, tab, semicolon, pipe). Use --delimiter to override.
  • Multi-sheet XLSX files export the first sheet by default. Use --sheet to specify a different sheet name.
  • Converting between the same format (e.g., CSV to CSV) will produce an error.
  • Numbers format support is currently a stub with workaround instructions.