Write Excel XLSX declaratively.
Project description
Poi: Make creating Excel XLSX files fun again.
Poi helps you write Excel sheet in a declarative way, ensuring you have a better Excel writing experience.
It only supports Python 3.7+.
Quick start
Create a sheet object and write to a file.
from poi import Sheet, Cell sheet = Sheet( root=Cell("hello world") ) sheet.write('hello.xlsx')
See, it's pretty simple and clear.
Sample for rendering a simple table.
from typing import NamedTuple from datetime import datetime import random from poi import Sheet, Table class Product(NamedTuple): name: str desc: str price: int created_at: datetime img: str data = [ Product( name=f"prod {i}", desc=f"desc {i}", price=random.randint(1, 100), created_at=datetime.now(), img="./docs/assets/product.jpg", ) for i in range(5) ] columns = [ { "type": "image", "attr": "img", "title": "Product Image", "options": {"x_scale": 0.27, "y_scale": 0.25}, }, ("name", "Name"), ("desc", "Description"), ("price", "Price"), ("created_at", "Create Time"), ] sheet = Sheet( root=Table( data=data, columns=columns, row_height=80, cell_style={ "color: red": lambda record, col: col.attr == "price" and record.price > 50 }, date_format="yyyy-mm-dd", align="center", border=1, ) ) sheet.write("table.xlsx")
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size poi-0.2.5-py3-none-any.whl (9.3 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size poi-0.2.5.tar.gz (9.0 kB) | File type Source | Python version None | Upload date | Hashes View |