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.

Files for ezexcel, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size ezexcel-0.1.1-py2.py3-none-any.whl (18.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size ezexcel-0.1.1.tar.gz (5.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page