Skip to main content

pytablewriter is a python library to write a table in various formats: CSV/HTML/JavaScript/JSON/Markdown/Excel/Pandas/Python/reStructuredText

Project description

pytablewriter
=============

.. image:: https://img.shields.io/pypi/pyversions/pytablewriter.svg
:target: https://pypi.python.org/pypi/pytablewriter
.. image:: https://travis-ci.org/thombashi/pytablewriter.svg?branch=master
:target: https://travis-ci.org/thombashi/pytablewriter
.. image:: https://ci.appveyor.com/api/projects/status/2w0611ajvw21vho5?svg=true
:target: https://ci.appveyor.com/project/thombashi/pytablewriter
.. image:: https://coveralls.io/repos/github/thombashi/pytablewriter/badge.svg?branch=master
:target: https://coveralls.io/github/thombashi/pytablewriter?branch=master

Summary
-------

pytablewriter is a python library to write a table in various formats: CSV/HTML/JavaScript/JSON/Markdown/Excel/Pandas/Python/reStructuredText

Features
--------

- Write a table in various formats:
- CSV
- Microsoft Excel :superscript:`TM`
- `.xlsx` format
- `.xls` format
- HTML
- JavaScript (Definition of a nested list variable)
- JSON
- Markdown
- Pandas (Definition of a DataFrame variable)
- Python code (Definition of a nested list variable)
- reStructuredText
- Grid tables
- Simple tables
- CSV table
- Automatic value formatting
- Alignment
- Padding
- Decimal places of numbers
- Output to a stream such as a file or the standard output

Examples
========

Write a Markdown table
----------------------

.. code:: python

import pytablewriter

writer = pytablewriter.MarkdownTableWriter()
writer.table_name = "example_table"
writer.header_list = ["int", "float", "str", "bool", "mix", "time"]
writer.value_matrix = [
[0, 0.1, "hoge", True, 0, "2017-01-01 03:04:05+0900"],
[2, "-2.23", "foo", False, None, "2017-12-23 45:01:23+0900"],
[3, 0, "bar", "true", "inf", "2017-03-03 33:44:55+0900"],
[-10, -9.9, "", "FALSE", "nan", "2017-01-01 00:00:00+0900"],
]

writer.write_table()

.. code::

# example_table
int|float|str |bool |mix| time
--:|----:|----|-----|--:|------------------------
0| 0.1|hoge|True | 0|2017-01-01 03:04:05+0900
2| -2.2|foo |False| |2017-12-23 12:34:51+0900
3| 0.0|bar |True |inf|2017-03-03 22:44:55+0900
-10| -9.9| |False|nan|2017-01-01 00:00:00+0900


Rendering result
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. figure:: ss/markdown.png
:scale: 80%
:alt: markdown_ss

Rendered markdown at GitHub

Write a reStructuredText table (grid tables)
--------------------------------------------


.. code:: python

import pytablewriter

writer = pytablewriter.RstGridTableWriter()
writer.table_name = "example_table"
writer.header_list = ["int", "float", "str", "bool", "mix", "time"]
writer.value_matrix = [
[0, 0.1, "hoge", True, 0, "2017-01-01 03:04:05+0900"],
[2, "-2.23", "foo", False, None, "2017-12-23 45:01:23+0900"],
[3, 0, "bar", "true", "inf", "2017-03-03 33:44:55+0900"],
[-10, -9.9, "", "FALSE", "nan", "2017-01-01 00:00:00+0900"],
]

writer.write_table()


.. code::

.. table:: example_table

+---+-----+----+-----+---+------------------------+
|int|float|str |bool |mix| time |
+===+=====+====+=====+===+========================+
| 0| 0.1|hoge|True | 0|2017-01-01 03:04:05+0900|
+---+-----+----+-----+---+------------------------+
| 2| -2.2|foo |False| |2017-12-23 12:34:51+0900|
+---+-----+----+-----+---+------------------------+
| 3| 0.0|bar |True |inf|2017-03-03 22:44:55+0900|
+---+-----+----+-----+---+------------------------+
|-10| -9.9| |False|nan|2017-01-01 00:00:00+0900|
+---+-----+----+-----+---+------------------------+

Rendering result
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. table:: example_table

+---+-----+----+-----+---+------------------------+
|int|float|str |bool |mix| time |
+===+=====+====+=====+===+========================+
| 0| 0.1|hoge|True | 0|2017-01-01 03:04:05+0900|
+---+-----+----+-----+---+------------------------+
| 2| -2.2|foo |False| |2017-12-23 12:34:51+0900|
+---+-----+----+-----+---+------------------------+
| 3| 0.0|bar |True |inf|2017-03-03 22:44:55+0900|
+---+-----+----+-----+---+------------------------+
|-10| -9.9| |False|nan|2017-01-01 00:00:00+0900|
+---+-----+----+-----+---+------------------------+

Write a JavaScript table (variable definition of nested list)
-------------------------------------------------------------

.. code:: python

import pytablewriter

writer = pytablewriter.JavaScriptTableWriter()
writer.table_name = "example_table"
writer.header_list = ["int", "float", "str", "bool", "mix", "time"]
writer.value_matrix = [
[0, 0.1, "hoge", True, 0, "2017-01-01 03:04:05+0900"],
[2, "-2.23", "foo", False, None, "2017-12-23 45:01:23+0900"],
[3, 0, "bar", "true", "inf", "2017-03-03 33:44:55+0900"],
[-10, -9.9, "", "FALSE", "nan", "2017-01-01 00:00:00+0900"],
]

writer.write_table()

.. code:: js

var example_table = [
["int", "float", "str", "bool", "mix", "time"],
[0, 0.1, "hoge", true, 0, new Date("2017-01-01T03:04:05+0900")],
[2, -2.2, "foo", false, null, new Date("2017-12-23T12:34:51+0900")],
[3, 0.0, "bar", true, Infinity, new Date("2017-03-03T22:44:55+0900")],
[-10, -9.9, "", false, NaN, new Date("2017-01-01T00:00:00+0900")]
];

Write an Excel table
--------------------

.. code:: python

import pytablewriter

writer = pytablewriter.ExcelXlsxTableWriter()
writer.open_workbook("sample.xlsx")

writer.make_worksheet("example")
writer.header_list = ["int", "float", "str", "bool", "mix", "time"]
writer.value_matrix = [
[0, 0.1, "hoge", True, 0, "2017-01-01 03:04:05+0900"],
[2, "-2.23", "foo", False, None, "2017-12-23 12:34:51+0900"],
[3, 0, "bar", "true", "inf", "2017-03-03 22:44:55+0900"],
[-10, -9.9, "", "FALSE", "nan", "2017-01-01 00:00:00+0900"],
]
writer.write_table()

writer.close()


Output
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. figure:: ss/excel_single.png
:scale: 100%
:alt: excel_single

Output excel file (``sample_single.xlsx``)

For more information
--------------------

More examples are available at
http://pytablewriter.readthedocs.org/en/latest/pages/examples/index.html

Installation
============

::

pip install pytablewriter


Dependencies
============

Python 2.7+ or 3.3+

- `DataPropery <https://github.com/thombashi/DataProperty>`__
- `dominate <http://github.com/Knio/dominate/>`__
- `pathvalidate <https://github.com/thombashi/pathvalidate>`__
- `six <https://pypi.python.org/pypi/six/>`__
- `XlsxWriter <http://xlsxwriter.readthedocs.io/>`__
- `xlwt <http://www.python-excel.org/>`__


Test dependencies
-----------------

- `pytest <http://pytest.org/latest/>`__
- `pytest-runner <https://pypi.python.org/pypi/pytest-runner>`__
- `SimpleSQLite <https://github.com/thombashi/SimpleSQLite>`__
- `tox <https://testrun.org/tox/latest/>`__

Documentation
=============

http://pytablewriter.readthedocs.org/en/latest/

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

pytablewriter-0.6.0.tar.gz (48.3 kB view details)

Uploaded Source

Built Distribution

pytablewriter-0.6.0-py2.py3-none-any.whl (23.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytablewriter-0.6.0.tar.gz.

File metadata

File hashes

Hashes for pytablewriter-0.6.0.tar.gz
Algorithm Hash digest
SHA256 b8a1187161a96700b08ad4536231cc50361417c9686849482854fe3240e1d3ae
MD5 1c40df16836657db10cf96c76970f47c
BLAKE2b-256 1ed26fa659a9e63f6e38b3bb86d02237bbbc719d08bf7dc6306946b00c545d37

See more details on using hashes here.

File details

Details for the file pytablewriter-0.6.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pytablewriter-0.6.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ad3875f3ed244cb02b6d52766cfc0f05e80a37eafe12abaa26dabcc961472de6
MD5 1db4b0ec25b1dcba76d7d320fda9993d
BLAKE2b-256 550e42b5f654d111517f2dfea2ceee9a0551a1b148d5b7c04a7fb358ffd17d55

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page