Skip to main content

Beautiful Tables for Terminal Applications

A modern C++ library for creating beautifully formatted tables in the terminal with rich styling, colors, and export options

Get Started

Get up and running with Tabulate in minutes.

Quick Start

Create your first table in under 5 minutes

Installation

Add Tabulate to your C++ project

Key Features

Everything you need to create stunning terminal tables.

Header-Only Library

Just include the header and start using. Single-header option available for maximum convenience.

Rich Formatting

Complete control over alignment, colors, borders, font styles, and more.

UTF-8 Support

Full support for multi-byte characters and Unicode text.

Export Formats

Export tables to Markdown, AsciiDoc, and LaTeX formats.

Nested Tables

Create complex layouts with tables inside tables.

C++11 Compatible

Works with C++11 and later, with optional C++17 enhancements.

Explore Documentation

Core Concepts

Learn the fundamentals of tables, formatting, and style inheritance

Guides

Step-by-step guides for common tasks and features

API Reference

Complete API documentation for all classes and methods

Advanced Features

Nested tables, UTF-8, and export capabilities

Examples

Real-world examples and use cases

GitHub

View source code and contribute

Quick Example

#include <tabulate/table.hpp>
using namespace tabulate;

int main() {
  Table movies;
  
  movies.add_row({"Title", "Director", "Year"});
  movies.add_row({"Blade Runner", "Ridley Scott", "1982"});
  movies.add_row({"The Matrix", "Wachowskis", "1999"});
  
  // Format header
  movies[0].format()
    .font_color(Color::yellow)
    .font_align(FontAlign::center)
    .font_style({FontStyle::bold});
  
  // Center align year column
  movies.column(2).format()
    .font_align(FontAlign::center);
  
  std::cout << movies << std::endl;
}
Tabulate is a header-only library with no external dependencies. Just include the header and start creating beautiful tables!

Build docs developers (and LLMs) love