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

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 table, pagination, scrolling, and export options. 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.0b1-py3-none-win_amd64.whl (2.1 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 12.0+ x86-64

csvtotable-3.0.0b1-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.0b1-py3-none-win_amd64.whl.

File metadata

  • Download URL: csvtotable-3.0.0b1-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.0b1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7427f8c2ba1241f994e34ff0341a324617add1d069c48bc254fd9be4b10822e1
MD5 2ebdc786e10e9d681481cca3ebf36394
BLAKE2b-256 8d00806c1c7190379106c147f3d3d83bc2d8e094b97a51c1ea5ece95dfb1d82b

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b1-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.0b1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 37c9e1bc90843f4711783caee895b12058e583904d830b833a1a411ecea28dc4
MD5 19813a48df4267c31c26b4a0d1d0a5fa
BLAKE2b-256 13fb6157ce4fe08a5bbb0fa463fb87fdb547bed697c3b4674347f06e778aca83

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b1-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.0b1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d871657cd54f24877e95edb95a65ff8c8446bb06244717d782ebdc0fb69b9538
MD5 28b94ea4aecf68949daa0cf46d6673c2
BLAKE2b-256 d6aedbc30724793908f0df2f9f6e6173d3c239c983fc9fb0560c894ec60a88e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b1-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.0b1-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6f8cfb125915a06791a2a55a76fd9555715e1be5b34037f60f0bb5f7f0cc40cc
MD5 00061560d59383717796fd74725af729
BLAKE2b-256 e1ba4f4d92477bcffa64cf4cb17dd0b625b64224fab40d1b0def509e517ed567

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b1-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.0b1-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 8cdb15b43fe076489223a8188a20cfd7c7bb4e4a02827961ba46188f8139a1bd
MD5 3716eff062d7000457b08716e4e34e7d
BLAKE2b-256 13ea0e18b050476d7c23f9c942076f916e537ce84aceeeb5b2dbbf6db07eb72d

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b1-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.0b1-py3-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b1-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 7d991dac58a19ac6aa0dc4de28597a6da0ae993d4f5fc6154423e508cafdc8bc
MD5 66cd7ec22755b80a70153d73f4533f34
BLAKE2b-256 e4fd22c49e9570d8dcd2194bfd80c305965c354553e06578cc1057ea65df071a

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b1-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.0b1-py3-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b1-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1ce06ca3ed33eaae1fc2e2a3fed87a117144b0fff0aa7e9b64132c17667f66a0
MD5 feffc29f9ae6f48d556a8a7a1fcde417
BLAKE2b-256 e3190d1210ace513e32e2da97eb06cc8e5da8e1c0871447404f81741dde5ca78

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b1-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.0b1 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