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


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


From PyPi

  1. Run pip install ezexcel or sudo pip3 install ezexcel

From source

  1. Clone this repo: (
  2. Run pip install . or sudo pip3 install .in the root directory


Store some animal instances in a spreadsheet called 'animals.xlsx'

from ezexcel import Spreadsheet

class Animal():
    def __init__(self, name:str, conservation_status:str): = 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:, 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

class User():
    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:

Additional Documentation

Additional documentation can be found at

For details on how contributing to the project, please see, for details on upcoming changes see our roadmap.

For most recent changes see


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


  • 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 hashes)

Uploaded source

Built Distribution

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

Uploaded py2 py3

Supported by

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