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-1.0.1.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

poi-1.0.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: poi-1.0.1.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.9.16 Darwin/22.3.0

File hashes

Hashes for poi-1.0.1.tar.gz
Algorithm Hash digest
SHA256 70b3212bdaf975fbe12f2313ae5746d9e02e49094fd4b987bba682a686e5b150
MD5 5808fbf3e11c912424b02def0380dbe9
BLAKE2b-256 cffd3257f4249b3a5a9e16b498a3611577bf1bce482ae77ad47becb80b794495

See more details on using hashes here.

File details

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

File metadata

  • Download URL: poi-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.9.16 Darwin/22.3.0

File hashes

Hashes for poi-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d253542e9a276e6e7669601f2caf9f43571cadddb9f6df58866131411c50b159
MD5 487dfa06e961fe32d314e9fc2744085c
BLAKE2b-256 3bc63d0a78b8e2bf21e49bfaf253a0335d8b5ad5410fde8bd45e6ba5ef620e6d

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