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

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

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