A python library to read and write structured data in csv, zipped csv format and to/from databases
Project description
Known constraints
Fonts, colors and charts are not supported.
pyexcel-io provides one application programming interface(API) to read and write the data in excel format, import the data into and export the data from database. It provides support for csv(z) format, django database and sqlalchemy supported databases. Its supported file formats are extended to cover “xls”, “xlsx”, “ods” by the following extensions:
Package name |
Supported file formats |
Dependencies |
Python versions |
---|---|---|---|
2.6, 2.7, 3.3, 3.4, 3.5, pypy, pypy3 |
|||
xls, xlsx(read only), xlsm(read only) |
same as above |
||
xlsx |
same as above |
||
xlsx(write only) |
same as above |
||
ods |
ezodf, lxml |
2.6, 2.7, 3.3, 3.4 3.5 |
|
ods |
same as above |
Footnotes
If you need to manipulate the data, you might do it yourself or use its brother library pyexcel .
If you would like to extend it, you may use it to write your own extension to handle a specific file format.
Installation
You can install it via pip:
$ pip install pyexcel-io
or clone it and install it:
$ git clone http://github.com/pyexcel/pyexcel-io.git
$ cd pyexcel-io
$ python setup.py install
Development guide
Development steps for code changes
cd pyexcel-io
Upgrade your setup tools and pip. They are needed for development and testing only:
pip install –upgrade setuptools “pip==7.1”
Then install relevant development requirements:
pip install -r rnd_requirements.txt # if such a file exists
pip install -r requirements.txt
pip install -r tests/requirements.txt
In order to update test environment, and documentation, additional setps are required:
pip install moban
make your changes in .moban.d directory, then issue command moban
What is rnd_requirements.txt
Usually, it is created when a dependent library is not released. Once the dependecy is installed(will be released), the future version of the dependency in the requirements.txt will be valid.
What is pyexcel-commons
Many information that are shared across pyexcel projects, such as: this developer guide, license info, etc. are stored in pyexcel-commons project.
What is .moban.d
.moban.d stores the specific meta data for the library.
How to test your contribution
Although nose and doctest are both used in code testing, it is adviable that unit tests are put in tests. doctest is incorporated only to make sure the code examples in documentation remain valid across different development releases.
On Linux/Unix systems, please launch your tests like this:
$ make test
On Windows systems, please issue this command:
> test.bat
License
New BSD License
Change log
unreleased
Updated
#19, use cString by default
0.24 - 24.11.2016
Updated
#23, Failed to convert long integer string in python 2 to its actual value
0.23 - 16.09.2016
Added
0.22 - 31.08.2016
Added
support pagination. two pairs: start_row, row_limit and start_column, column_limit help you deal with large files.
skip_empty_rows=True was introduced. To include empty rows, put it to False.
Updated
#20, pyexcel-io attempts to parse cell contents of ‘infinity’ as a float/int, crashes
0.2.1 - 11.07.2016
Added
csv format: handle utf-16 encoded csv files. Potentially being able to decode other formats if correct “encoding” is provided
csv format: write utf-16 encoded files. Potentially other encoding is also supported
support stdin as input stream and stdout as output stream
Updated
Attention, user of pyexcel-io! No longer io stream validation is performed in python 3. The guideline is: io.StringIO for csv, tsv only, otherwise BytesIO for xlsx, xls, ods. You can use RWManager.get_io to produce a correct stream type for you.
#15, support foreign django/sql foreign key
0.2.0 - 01.06.2016
Added
autoload of pyexcel-io plugins
auto detect datetime, float and int. Detection can be switched off by auto_detect_datetime, auto_detect_float, auto_detect_int
0.1.0 - 17.01.2016
Added
# yield key word to return generator as content
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.