Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

CSVtoTable

CSVtoTable converts CSV files into interactive HTML tables.

  • Single native binary with embedded frontend assets
  • Standalone HTML output that works offline
  • Mobile-responsive table layout
  • Search, sorting, pagination, and virtual scrolling
  • Copy, CSV, JSON, and print exports
  • User-controlled light and dark themes

Install

uvx, pipx, or pip

Run without installing:

uvx csvtotable data.csv data.html

Or install it:

pipx install csvtotable
# or, inside a virtual environment:
pip install csvtotable

uv tool install csvtotable works too. Python is only needed to install the prebuilt executable.

npx or npm

npx @vividvilla/csvtotable data.csv data.html
# or install globally:
npm install --global @vividvilla/csvtotable

To run a particular published version:

uvx csvtotable@X.Y.Z data.csv data.html
npx @vividvilla/csvtotable@X.Y.Z data.csv data.html

Homebrew

brew install vividvilla/tap/csvtotable

Standalone binary

Download an archive from GitHub Releases, verify it with SHA256SUMS, and place csvtotable (csvtotable.exe on Windows) on your PATH.

Prebuilt binaries support Linux x86-64/ARM64, macOS 12+ x86-64/Apple Silicon, and Windows 10+ x86-64.

Usage

# Write a standalone page
csvtotable data.csv data.html

# Open a temporary page in the default browser
csvtotable data.csv --serve

# Add a title and generate headers for headerless data
csvtotable data.csv data.html --title "Sales" --no-header

# Read stdin and write stdout
curl -L https://example.com/data.csv | csvtotable - - > data.html

BOM-marked UTF-8 and UTF-16 input is detected automatically. Use --encoding for other encodings, and --delimiter or --quotechar for custom CSV formats.

Run csvtotable --help for all options or csvtotable --version for the version. For compatibility with version 2, --pagination and --export disable those features.

Development

Building requires Go 1.24+ and Bun. Distribution packaging also requires Python and npm. table/dist is generated before the Go build and embedded in the final binary.

nix develop  # optional development environment
make build   # frontend and build/csvtotable
make test    # frontend, formatting, vet, and tests
make dist    # binary and host-platform packages under dist/
./build/csvtotable sample/goog.csv /tmp/goog.html

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

csvtotable-3.0.0b4-py3-none-win_amd64.whl (2.1 MB view details)

Uploaded Python 3Windows x86-64

csvtotable-3.0.0b4-py3-none-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

csvtotable-3.0.0b4-py3-none-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

csvtotable-3.0.0b4-py3-none-manylinux_2_17_x86_64.whl (2.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

csvtotable-3.0.0b4-py3-none-manylinux_2_17_aarch64.whl (1.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

csvtotable-3.0.0b4-py3-none-macosx_12_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 12.0+ x86-64

csvtotable-3.0.0b4-py3-none-macosx_12_0_arm64.whl (2.0 MB view details)

Uploaded Python 3macOS 12.0+ ARM64

File details

Details for the file csvtotable-3.0.0b4-py3-none-win_amd64.whl.

File metadata

  • Download URL: csvtotable-3.0.0b4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for csvtotable-3.0.0b4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8080c58692a52e3f23b6bb439de87b989b3b8948d1f7d51abbc5ee5f592ce1bd
MD5 6e1a9864eca3ea6526f55633cffa2a88
BLAKE2b-256 13b4861a2d700cb352bd42c5cf8274f7b37c70a1d6d261b6fbbafc5acfc97709

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b4-py3-none-win_amd64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0b4-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b4-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3eae7766dd45d75dca107b1f53742c714e1d7f98d9159e6b490c98e5fcf218e0
MD5 1c8c3a4beecdd90ef58ae24c21eb8cb5
BLAKE2b-256 398f3ec4d4862275a58a3dceca4299433ad256296e3d2705aa4b3f05019746a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b4-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0b4-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b4-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e5a67ae2797384c9a8492a6e8be42c8260cd204657579713c6a6a3bf720722e3
MD5 6c4cc09ca3e9966a95e9666e3c1dc3dc
BLAKE2b-256 fefe149c8b684b6b874aeff2501daaad0ee1a41c1ef725e515140afcec0e3452

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b4-py3-none-musllinux_1_2_aarch64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0b4-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b4-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 fbeaf1adcb9893add707c47b6c18f31d01d9d8586971f4c478bee6bcc670c046
MD5 478ccdc190b8fcaa5dc63cac24001861
BLAKE2b-256 b4d49e395b68707527c81396187980d263b286bc4d659efcc63059c2c4c47746

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b4-py3-none-manylinux_2_17_x86_64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0b4-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b4-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 958d5ee5219bd8c9d44b1f805f5e6f89462b448ab156e2310aa529d5e2d22d0b
MD5 154d39d6edf59610d512db1f3099339a
BLAKE2b-256 b919ee970573a9b848677146239c22c3791cbeff396037b186f3be56759e7944

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b4-py3-none-manylinux_2_17_aarch64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0b4-py3-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b4-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 f1ddd9c3265126e319cb6961f522ef79d1997ac237a420cfa484e82981208287
MD5 66eb9434a76fa10c0b430035fdb5ede1
BLAKE2b-256 4568c8664b6851ac5d6fc2f258ba18baaacf4292aa941dc40143a40bbf601120

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b4-py3-none-macosx_12_0_x86_64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0b4-py3-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b4-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 38509dd9d4ad379b63d890fbb9625121a05da1e5fe3e0c245cebb566f68df744
MD5 8daa4b6adf71b8b3a3c3917fc26c674e
BLAKE2b-256 45d041fd2f9bb5cc4631584e94f8cdf2385e1897015b439cc7d5a83a7ccd3b5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b4-py3-none-macosx_12_0_arm64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.2.0

7 files

3.1.0

7 files

3.0.0

7 files

This release

3.0.0b4 This release

7 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.1.4

1 file

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page