Skip to main content

A simple class based xlsx serialization system

Project description

execel logo

EZ Excel

A simple class based xlsx serialization system

Table of contents

Goals

This project has a few goals:

  1. Make OO projects easier to serialize to xlsx
  2. Make use of xlsx serialization and deserialization (coming soon) easier
  3. Write the simplest to use api for xlsx serialization

Installation

From PyPi

  1. Run pip install ezexcel or sudo pip3 install ezexcel

From source

  1. Clone this repo: (https://github.com/Descent098/ez-excel)
  2. Run pip install . or sudo 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


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)

Uploaded Source

Built Distribution

ezexcel-0.1.1-py2.py3-none-any.whl (18.2 kB view details)

Uploaded Python 2 Python 3

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

Hashes for ezexcel-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1c25a6a1c1d519ce8e29be7dd6be5545729ce8cf280b6d8df8e9d9f15f909eda
MD5 e26e12aaeabd87c8a4744ffda0da9327
BLAKE2b-256 32015d3b40ab9f78303fb3befae17fe2d06e30112273224915a67ccf63114ed3

See more details on using hashes here.

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

Hashes for ezexcel-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2e95d48100c5ab98610948a693d6cc0a1064f05c177c6ed93983ad16bfc4d8de
MD5 0c2e2a7f89e89723293fa8ab58981a06
BLAKE2b-256 6e43b40c44715bde1b05d547a7f623a9c67ca2487f897e5801dbf0f90e403aad

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