Skip to main content

A python module to generate xls/x files from a xls/x template

Project description

xltpl

A python module to generate xls/x files from a xls/x template.

How it works

When xltpl reads a xls/x file, it creates a tree for each worksheet.
And, each tree is translated to a jinja2 template with custom tags.
When the template is rendered, jinja2 extensions of cumtom tags call corresponding tree nodes to write the xls/x file.

How to install

pip install xltpl

How to use

  • To use xltpl, you need to be familiar with the syntax of jinja2 template.
  • Get a pre-written xls/x file as the template.
  • Insert variables in the cells, such as :
{{name}}
  • Insert control statements in the notes(comments) of cells, use beforerow, beforecell or aftercell to seperate them :
beforerow{% for item in items %}
beforerow{% endfor %}
  • Insert control statements in the cells (v0.9) :
{%- for row in rows %}
{% set outer_loop = loop %}{% for row in rows %}
Cell
{{outer_loop.index}}{{loop.index}}
{%+ endfor%}{%+ endfor%}
  • Run the code
from xltpl.writerx import BookWriter
writer = BookWriter('tpl.xlsx')
person_info = {'name': u'Hello Wizard'}
items = ['1', '1', '1', '1', '1', '1', '1', '1', ]
person_info['items'] = items
payloads = [person_info]
writer.render_book(payloads)
writer.save('result.xlsx')

Supported

  • MergedCell
  • Non-string value for a cell (use {% xv variable %} to specify a variable)
  • For xlsx
    Image (use {% img variable %})
    DataValidation
    AutoFilter

Related

Notes

xlrd

xlrd does not extract print settings.
This repo does.

xlwt

xlwt always sets the default font to 'Arial'.
Excel measures column width units based on the default font.
This repo does not.

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

xltpl-0.21.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

xltpl-0.21-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file xltpl-0.21.tar.gz.

File metadata

  • Download URL: xltpl-0.21.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.0

File hashes

Hashes for xltpl-0.21.tar.gz
Algorithm Hash digest
SHA256 b1970cd64f64ef18cf8deeedd9cbf6ad13de92d71ddffbff4cc70eaad20d61d0
MD5 837cc59ef9b568fede14aa8d450ad977
BLAKE2b-256 aab51cf3356a0dcd77c3e378cd133adf976998173100ee6709b01a0a97673ceb

See more details on using hashes here.

File details

Details for the file xltpl-0.21-py3-none-any.whl.

File metadata

  • Download URL: xltpl-0.21-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.0

File hashes

Hashes for xltpl-0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 422a84235f25df389815788eb4f4bcf33414fcf4f665cf5545c0186ba6896c2c
MD5 20dbb8dc232a9d32aa92a4e53cf57c5c
BLAKE2b-256 ce2647018d8aa5e7e721f8ec780582671a29002fc70f48d956608d6b23585da4

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