# olekukonko/tablewriter

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/olekukonko-tablewriter).**

4,797 stars · 392 forks · Go · MIT

## Links

- GitHub: https://github.com/olekukonko/tablewriter
- awesome-repositories: https://awesome-repositories.com/repository/olekukonko-tablewriter.md

## Description

Tablewriter is a Go library and tool for generating ASCII and Unicode tables from structured data. It functions as a multi-format table renderer, converting data into layouts for terminal output, Markdown, HTML, and SVG.

The project distinguishes itself through the ability to embed nested tables within cells and merge adjacent cells horizontally or vertically. It also supports ANSI color application for headers, rows, and borders to style terminal user interfaces.

The toolkit provides capabilities for mapping Go structs and slices into rows, loading and converting CSV files via a command-line interface, and streaming table output incrementally. Visual appearance is managed through configurable borders, separators, padding, and alignment settings.

## Tags

### User Interface & Experience

- [Multi-Format Table Renderers](https://awesome-repositories.com/f/user-interface-experience/multi-format-table-renderers.md) — Provides a formatting engine that converts structured data into ASCII, Unicode, Markdown, HTML, and SVG table layouts.
- [Terminal Data Visualizations](https://awesome-repositories.com/f/user-interface-experience/terminal-data-visualizations.md) — Renders structured data and CSV files as organized ASCII tables for analysis within a terminal.
- [Terminal Table Formatters](https://awesome-repositories.com/f/user-interface-experience/ansi-terminal-ui-libraries/terminal-table-formatters.md) — Formats data tables with ANSI colors and alignment styles for display in command-line environments.
- [Table Visual Styling](https://awesome-repositories.com/f/user-interface-experience/data-display-components/data-table-customizations/table-header-customizers/table-visual-styling.md) — Offers extensive customization of the visual appearance of tables, including borders, separators, alignment, and padding. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))
- [Table Border Generators](https://awesome-repositories.com/f/user-interface-experience/table-border-generators.md) — Constructs customizable table borders and cell separators for various output formats.
- [Terminal Styling](https://awesome-repositories.com/f/user-interface-experience/terminal-styling.md) — Applies ANSI colors and custom borders to text tables to improve visual hierarchy in CLI tools.
- [CSV Table Renderers](https://awesome-repositories.com/f/user-interface-experience/data-tables/csv-table-renderers.md) — Provides a CLI tool to transform CSV files into aligned ASCII tables for terminal visualization. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))
- [Cell Merging](https://awesome-repositories.com/f/user-interface-experience/grid-cell-configurations/cell-merging.md) — Implements horizontal and vertical merging of adjacent cells to create grouped structures and organizational layouts. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))
- [Nested Data Tables](https://awesome-repositories.com/f/user-interface-experience/master-detail-layouts/nested-data-tables.md) — Supports embedding nested tables within cells to create complex, multi-dimensional data layouts.
- [Nested Table Embedding](https://awesome-repositories.com/f/user-interface-experience/table-layout-engines/nested-table-embedding.md) — Supports inserting formatted sub-tables within the cells of a parent table to create multi-dimensional data layouts. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))

### Data & Databases

- [Text-Based Table Mappings](https://awesome-repositories.com/f/data-databases/structured-data-schemas/struct-to-table-mappings/go-struct-mappings/text-based-table-mappings.md) — Uses stringer interfaces and mapping functions to transform Go structs into formatted table rows.
- [Struct-to-Table-Row Mappers](https://awesome-repositories.com/f/data-databases/type-mapping-frameworks/script-to-native-type-mappings/entity-mappings/struct-to-table-row-mappers.md) — Maps custom Go data structures into table rows using mapping functions or stringer interfaces. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))
- [CSV Imports](https://awesome-repositories.com/f/data-databases/csv-imports.md) — Loads and parses CSV files for display as formatted tables with configurable alignment. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))

### Development Tools & Productivity

- [ASCII Table Generators](https://awesome-repositories.com/f/development-tools-productivity/ascii-table-generators.md) — Provides a library for rendering structured Go data into ASCII and Unicode tables for terminal output.
- [ANSI Color Rendering](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/statusline-customizations/ansi-color-rendering.md) — Implements the translation of style definitions into ANSI terminal escape sequences for colored borders and text.
- [Terminal Table Coloring](https://awesome-repositories.com/f/development-tools-productivity/vim-plugins/statusline-customizations/ansi-color-rendering/terminal-table-coloring.md) — Enables the application of ANSI colors to headers, rows, and borders to improve readability in terminal environments. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))

### Graphics & Multimedia

- [Multi-Format Output Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/multi-format-output-renderers.md) — Generates multiple output formats, including ASCII, Unicode, Markdown, HTML, and SVG, from a single data source.

### Operating Systems & Systems Programming

- [Reporting Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-interface-systems/terminal-interfaces/reporting-interfaces.md) — Creates human-readable tables in Go to display structured data, logs, and reports directly to the command line.

### Scientific & Mathematical Computing

- [Visual](https://awesome-repositories.com/f/scientific-mathematical-computing/data-table-formatting/visual.md) — Converts Go structs and slices into table-compatible text using custom stringers and formatting functions. ([source](https://cdn.jsdelivr.net/gh/olekukonko/tablewriter@master/README.md))
- [Data Table Formatting](https://awesome-repositories.com/f/scientific-mathematical-computing/data-table-formatting.md) — Converts Go structs and slices into formatted text tables with custom alignment and padding.

### Part of an Awesome List

- [Command Line Tools](https://awesome-repositories.com/f/awesome-lists/devtools/command-line-tools.md) — Library for rendering tables in terminals.
