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 ezexcelorsudo 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|