data-convert
GitHub用于在不同表格数据格式(如CSV、Excel、JSONL、Parquet等)之间进行相互转换的工具。支持自动检测源格式,提供索引、转换及结果验证步骤,适用于数据预处理和格式标准化场景。
Trigger Scenarios
Install
npx skills add dathere/qsv --skill data-convert -g -y
SKILL.md
Frontmatter
{
"name": "data-convert",
"description": "Convert between CSV, TSV, Excel, JSONL, Parquet, and other tabular formats",
"allowed-tools": [
"mcp__qsv__qsv_sniff",
"mcp__qsv__qsv_count",
"mcp__qsv__qsv_headers",
"mcp__qsv__qsv_index",
"mcp__qsv__qsv_command",
"mcp__qsv__qsv_to_parquet",
"mcp__qsv__qsv_list_files",
"mcp__qsv__qsv_search_tools",
"mcp__qsv__qsv_get_working_dir",
"mcp__qsv__qsv_set_working_dir"
],
"argument-hint": "<file> [format]",
"user-invocable": true
}
Data Convert
Convert tabular data files between formats.
Cowork note: If relative paths don't resolve, call
mcp__qsv__qsv_get_working_dirandmcp__qsv__qsv_set_working_dirto sync the working directory.
Supported Conversions
Input Formats (auto-detected)
- CSV (
.csv), TSV (.tsv/.tab), SSV (.ssv) - Excel (
.xlsx,.xls,.xlsm,.xlsb) - OpenDocument (
.ods) - JSONL/NDJSON (
.jsonl,.ndjson) - Snappy-compressed variants (
.csv.sz, etc.)
Output Formats
| Format | Command | Extension |
|---|---|---|
| CSV | select (identity) or fmt |
.csv |
| TSV | fmt --out-delimiter '\t' |
.tsv |
| JSONL | tojsonl |
.jsonl |
| JSON | slice --json |
.json |
| Parquet | mcp__qsv__qsv_to_parquet (core tool) |
.parquet |
| XLSX | to xlsx (via mcp__qsv__qsv_command) |
.xlsx |
| ODS | to ods (via mcp__qsv__qsv_command) |
.ods |
| SQLite | to sqlite (via mcp__qsv__qsv_command) |
.db |
| PostgreSQL | to postgres (via mcp__qsv__qsv_command) |
N/A |
| Data Package | to datapackage (via mcp__qsv__qsv_command) |
.json |
Steps
-
Index: Run
mcp__qsv__qsv_indexon the file for fast random access in subsequent steps. -
Detect source format: Run
mcp__qsv__qsv_sniffto identify the input format, delimiter, and encoding. -
Convert: Use the appropriate command based on the target format:
-
To CSV (from Excel/JSONL): The MCP server handles this automatically when you pass non-CSV files to any qsv tool. Use
mcp__qsv__qsv_commandwithexcelfor explicit control over sheet selection. -
To TSV: Use
mcp__qsv__qsv_commandwithcommand: "fmt",options: {"out-delimiter": "\t"}. -
To JSONL: Use
mcp__qsv__qsv_commandwithcommand: "tojsonl". -
To Parquet (single file): Use
mcp__qsv__qsv_to_parquet(core tool) — auto-generates stats cache and Polars schema for optimal type inference. -
To Parquet (batch): Use
mcp__qsv__qsv_commandwithcommand: "to",subcommand: "parquet",destination: "output_dir"for batch conversion with explicit compression control. -
To XLSX: Use
mcp__qsv__qsv_commandwithcommand: "to",subcommand: "xlsx",destination: "output.xlsx". -
To ODS: Use
mcp__qsv__qsv_commandwithcommand: "to",subcommand: "ods",destination: "output.ods". -
To SQLite: Use
mcp__qsv__qsv_commandwithcommand: "to",subcommand: "sqlite",destination: "output.db". -
To PostgreSQL: Use
mcp__qsv__qsv_commandwithcommand: "to",subcommand: "postgres",destination: "connection_string". -
To Data Package: Use
mcp__qsv__qsv_commandwithcommand: "to",subcommand: "datapackage",destination: "output.json".
-
-
Verify output: Run
mcp__qsv__qsv_counton the output (if CSV-based) to confirm row count matches input.
Notes
- Excel conversion: Use
--sheetto specify which sheet to convert (default: first sheet) - JSONL output respects data types from stats cache - run
stats --stats-jsonlfirst for better type inference - Parquet conversion preserves data types efficiently and produces smaller files
- For CSV -> CSV reformatting (change delimiter, quoting), use
fmtcommand - Large Excel files may take longer to convert - the MCP server handles this transparently
- When converting multiple sheets from Excel, run
excelwith--sheetfor each sheet
Version History
- 2f6b659 Current 2026-08-20 16:15


