Quick Start

Creating a Table

Import the Tabler class from the tabler package and instantiate it with a header and data:

from tabler import Table

table = Tabler(
    header=['SKU', 'Item Title', 'Price'],
    data=[[009, 'Item 1', 5.00], [010, 'Item 2', 9.99]])

Or pass the path to a file to open:

from tabler import Table

Table('path/to/some/file.csv')
This will recognise file types with the following extensions:
  • .csv (UTF-8 encoded and comma delimited).
  • .txt (UTF-8 encoded and comma delimited).
  • .xlsx
  • .ods

To explicitly open a file of a specific type a Table Type object must be provided.:

from tabler import Table
from tabler.tabletypes import CSV

Table('path/to/some/file.csv', table_type=CSV(delimiter='\t'))

These are subclasses of BaseTableType and allow the method of reading the file to be customised.

Reading a Table

At its base, Tabler is a two dimensional list. Therefore the simplest way to access a cell is by providing two indexes:

first_cell = table[0][0]

You can index a row by row number (zero based) Tabler will always treat the first line of any supplied data as column headers. This means that you can specify a column by index number or title:

first_item_title = table[0]["Item Title"]

Editing a Table

A cell can be edited using the equals = operator:

table[2]["Item Title"] = 'USB Hub'

Cell content can be string, int or float.

Loading Data into a Table

Data can be loaded into an empty Tabler object by passing a list of rows in the form of lists of cell data using the Tabler().load_from_array(data, header) method. A list of column headers must be passed as the second argument:

header = ["SKU", "Item Title", "Price"]

data = [
    ["001", "USB Hub", 7.00],
    ["002", "Raspberry Pi 3", 29.99],
    ["003", Arduino Uno", 20.00]
]

table = Tabler()
table.load_from_array(data, header)

Writing a Table to a File

Writing a file is similar to reading a file. Table Types are used in the same way to manage writing files:

table.write('path/to/save.csv', table_type=CSV(delimiter='\t')

The table type will be set automatically for recognised file extensions if not explicitly set.