Skip to main content

Write Excel XLSX declaratively.

Project description

Poi: Make creating Excel XLSX files fun again.

travis

Poi helps you write Excel sheet in a declarative way, ensuring you have a better Excel writing experience.

It only supports Python 3.7+.

Documentation

Installation

pip install poi

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

hello

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

table

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

poi-0.2.7.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

poi-0.2.7-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file poi-0.2.7.tar.gz.

File metadata

  • Download URL: poi-0.2.7.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.0 Darwin/21.2.0

File hashes

Hashes for poi-0.2.7.tar.gz
Algorithm Hash digest
SHA256 691f60b76a20ba601a6c52de772d08977746e1c3a49419793347f3997c4a7720
MD5 412125b001e7f10fe350b57bd720e019
BLAKE2b-256 98696726e8a115105cd642921cc406d0808904383cb406ec67841e67a1bc0b84

See more details on using hashes here.

File details

Details for the file poi-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: poi-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.0 Darwin/21.2.0

File hashes

Hashes for poi-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 78f868799e49f41aeaf0b8e5bed08b73014b10e93df315e086cfb07b86023d78
MD5 d29065f217e4e3d1b3e5721be9d65d87
BLAKE2b-256 8cb07a63e3de28e45cd1babffa892e92415b12cee796765b72f868248af0c790

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