A simple class based xlsx serialization system
Project description
EZ Excel
A simple class based xlsx serialization system
Table of contents
Goals
This project has a few goals:
- Make OO projects easier to serialize to xlsx
- Make use of xlsx serialization and deserialization (coming soon) easier
- Write the simplest to use api for xlsx serialization
Installation
From PyPi
- Run
pip install ezexcel
orsudo pip3 install ezexcel
From source
- Clone this repo: (https://github.com/Descent098/ez-excel)
- Run
pip install .
orsudo pip3 install .
in the root directory
Quick-start
Store some animal instances in a spreadsheet called 'animals.xlsx'
from ezexcel import Spreadsheet
class Animal():
def __init__(self, name:str, conservation_status:str):
self.name = name
self.conservation_status = conservation_status
leopard_gecko = Animal('Leopard Gecko', 'Least Concern')
philippine_eagle = Animal('Philippine Eagle', 'Threatened')
with Spreadsheet('animals.xlsx', Animal) as output_sheet:
output_sheet.store(leopard_gecko, philippine_eagle)
Store a list of instances into a spreadsheet called 'users.xlsx'
from ezexcel import Spreadsheet
import random
import string
from dataclasses import dataclass
@dataclass
class User():
Name:str
Age:int
Weight:int
Family: list # Note that Iterables will be flattened to a string with newline seperators
instances = []
ranstring = lambda: ''.join(random.choices(string.ascii_uppercase, k=10)) # Generates a random 10 character string
for i in range(1000):
instances.append(User(ranstring(), random.randint(12,100), random.randint(75,400), [ranstring(), ranstring(), ranstring()]))
with Spreadsheet('users.xlsx', User) as output_sheet:
output_sheet.store(instances)
Additional Documentation
Additional documentation can be found at https://kieranwood.ca/ezexcel
For details on how contributing to the project, please see CONTRIBUTING.md, for details on upcoming changes see our roadmap.
For most recent changes see CHANGELOG.md.
Changelog
0.1.1; September 25th
Fixed logo loading on PyPi
Bug fixes
- Fixed loading issue with logo on PyPi
0.1.0; September 25th
Initial release of EZ Excel
Features
- Ability to provide a class to instantiate a Spreadsheet
- Ability to pass instances in an iterable of class to Spreadsheet to be serialized
- Automatically flatten Iterable attributes within instances to endline delimited strings
- Added testing suite for all existing functionality
Documentation improvements
- Wrote all existing documentation :)
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
ezexcel-0.1.1.tar.gz
(5.7 kB
view details)
Built Distribution
File details
Details for the file ezexcel-0.1.1.tar.gz
.
File metadata
- Download URL: ezexcel-0.1.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c25a6a1c1d519ce8e29be7dd6be5545729ce8cf280b6d8df8e9d9f15f909eda |
|
MD5 | e26e12aaeabd87c8a4744ffda0da9327 |
|
BLAKE2b-256 | 32015d3b40ab9f78303fb3befae17fe2d06e30112273224915a67ccf63114ed3 |
File details
Details for the file ezexcel-0.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: ezexcel-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 18.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e95d48100c5ab98610948a693d6cc0a1064f05c177c6ed93983ad16bfc4d8de |
|
MD5 | 0c2e2a7f89e89723293fa8ab58981a06 |
|
BLAKE2b-256 | 6e43b40c44715bde1b05d547a7f623a9c67ca2487f897e5801dbf0f90e403aad |