pyexcel-cli - Let you focus on data, instead of file formats

Source code:
License:New BSD License
Generated:Jul 15, 2017


pyexcel-cli brings pyexcel to make it easy to consume/produce information stored in excel files on command line interface. This library can turn the excel data into a list of lists, a list of records(dictionaries), dictionaries of lists. And vice versa. Hence it lets you focus on data in shell programming, instead of file formats.

Hightlighted features:

  1. View data in the excel files without Microsoft Office or Open Office
  2. Transcode data among supported excel file formats
  3. Merge files in various excel file formats into one
  4. Split a multi-sheet excel file into single sheet files
  5. Find difference in data between two excel files


$ cd demo
$ pyexcel view --in-browser --output-file-type sortable.html --sheet-index 0

Here’s what you will get:


You will need to install pyexcel-sortable, which renders it.

Here is another cli example usage:

$ pyexcel view
Sheet 1:
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
Sheet 2:
| X | Y | Z |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
Sheet 3:
| O | P | Q |
| 3 | 2 | 1 |
| 4 | 3 | 2 |

Because pyexcel family is loosely coupled, especially for file format supports, you install the libraries that you need to. If you need to support xls format, you will need to install pyexcel-xls. For more information, please see the plugin section.


You can install it via pip:

$ pip install pyexcel-cli

or clone it and install it:

$ git clone
$ cd pyexcel-cli
$ python install

List of plugins

A list of file formats supported by external plugins
Package name Supported file formats Dependencies Python versions
pyexcel-io csv, csvz [1], tsv, tsvz [2]   2.6, 2.7, 3.3, 3.4, 3.5, 3.6 pypy
pyexcel-xls xls, xlsx(read only), xlsm(read only) xlrd, xlwt same as above
pyexcel-xlsx xlsx openpyxl same as above
pyexcel-xlsxw xlsx(write only) XlsxWriter same as above
pyexcel-ods3 ods ezodf, lxml 2.6, 2.7, 3.3, 3.4 3.5, 3.6
pyexcel-ods ods odfpy same as above
pyexcel-odsr ods(read only) lxml same as above
pyexcel-text (write only)json, rst, mediawiki, html, latex, grid, pipe, orgtbl, plain simple tabulate 2.6, 2.7, 3.3, 3.4 3.5, 3.6, pypy
pyexcel-handsontable handsontable in html handsontable same as above
pyexcel-pygal svg chart pygal 2.7, 3.3, 3.4, 3.5 3.6, pypy
pyexcel-sortable sortable table in html csvtotable same as above

In order to manage the list of plugins installed, you need to use pip to add or remove a plugin. When you use virtualenv, you can have different plugins per virtual environment. In the situation where you have multiple plugins that does the same thing in your environment, you need to tell pyexcel which plugin to use per function call. For example, pyexcel-ods and pyexcel-odsr, and you want to get_array to use pyexcel-odsr. You need to append get_array(..., library=’pyexcel-odsr’).


[1]zipped csv file
[2]zipped tsv file

Command line reference


Read and write data in different excel formats

file type in pyexcel refers to file formats, e.g. csv, xls

--help Show this message and exit.
  1. diff diff two excel files
  2. merge Merge excel files into one
  3. split Split a multi-sheet file into single ones
  4. transcode Transcode an excel file
  5. view View an excel file