Skip to main content

No project description provided

Project description

Introduction

A package to read/write xlsx worksheet like dictionary, based on openpyxl.

Installation

  • from pip
pip install pyxlsx
  • download package and run setup.py
python setup.py install

Usage

  • Create a new xlsx file and write to it
from pyxlsx import new_xlsx

with new_xlsx(filename) as wb:
    ws = wb.create_sheet('sheet1')
    # some operations

# or
wb = new_xlsx()
ws = wb.creat_sheet('sheet1')  # create a new sheet with name 'sheet1'
# some operations
wb.save(filename)
  • Open an existing xlsx file
from pyxlsx import open_xlsx

with open_xlsx(filename) as wb:
    ws1 = wb.active  # get active sheet
    ws2 = wb['sheet2']
    # some operations

# or
wb = open_xlsx(filename)
ws = wb['sheet2']
# some operations
wb.save()
# to save as another file
wb.save(another_filename)
  • Append rows to a worksheet
ws = wb['sheet1']
ws.append(
    ["", "", "str('Unknown')", "float(4.5)", "int(500)"]
)
# keys can only be of type str
content1 = {
    'id': '001',
    'productName': 'pork',
    'productType': 'meat',
    'price': 2.5,
    'weight': 1000,
}
content2 = {
    'id': '002',
    'productName': 'beef',
    'productType': 'meat',
    'price': 4.5,
    'weight': 1000,
    'origin': 'Australia'
}
# header is auto-generated from keys of the dict the first time append_by_header is called.
ws.append_by_header(content1)  
# new header name will be append to header if append_header is True (default value)
ws.append_by_header(content2)  
# below is the result of writing operation
A B C D E F
1 str('Unknown') float(30) int(0)
2 id productName productType price weight origin
3 001 pork meat 2.5 1000
4 002 beef meat 4.5 1000 Australia
  • Read from / write to a worksheet by row Note: if there are duplicate header names, only the first would be used.
ws = wb['sheet1']
assert ws.header is None
ws.header_row = 2  # set the second row as worksheet header row
assert ws.header is not None

for row in ws.content_rows:  # starting from row just below header row
    print(row[1])  # row cell value can accessed by column number, if key is of type int
    print(row['productName'])  # row cell value can be accessed by header name, if key is of type of str
    print(row['price'])  
    if row['productName'] == 'pork':
        row[1] = '003'  # change pork id to '003'
        row['price'] = 3.5  # change pork price to 3.5
# output as below
# '001'
# 'pork'
# 2.5
# '002'
# 'beef'
# 4.5
  • Read from a worksheet by column
ws = wb['sheet1']
ws.header_row = 2
# get a full column
column_cells = ws['B']
for c in column_cells:
    print(c.data)  # 'pork', 'beef'

# get a content column (containing only cells below header) by header name, 
# if key is of type str
name_column = ws.get_content_column('productName')
for c in name_column:
    print(c.data)  # 'pork', 'beef'

# get a content column by column number,
# if key is of type int
name_column = ws.get_content_column(2)
for c in name_column:
    print(c.data)  # 'pork', 'beef'
  • Read cell directly from Worksheet, Header, ContentRow
ws = wb['sheet1']
ws.header_row = 2
# access a cell by coordinate (row, column)
cell = ws.cell(2, 2)
print(cell.data)  # 'productName'

# access a cell by header name if key is of type str
cell = ws.header.cell('productName')
print(cell.data)  # 'productName'
# access a cell by column number
cell = ws.header.cell(1)
print(cell.data)  # 'id'

for row in ws.content_rows:
    cell = row.cell(1)  # '001', '002'
    print(cell.data)
    cell = row.cell('productName')
    print(cell.data)  # 'pork', 'beef'
  • Read adjacent cells of a certain cell
cell = ws.cell(2, 2)
print(cell.top.data)  # "str('Unknown')"
print(cell.left.data)  # 'id'
print(cell.right.data)  # 'productType'
print(cell.bottom.data)  # 'pork'

for c in cell.vertical:
    print(c.data)  # 'productName', 'pork', 'beef'

for c in cell.horizontal:
    print(c.data)  # 'productName', 'productType', 'price', 'weigth', 'origin'

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

pyxlsx-1.1.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

pyxlsx-1.1.0-py3-none-any.whl (2.5 kB view details)

Uploaded Python 3

File details

Details for the file pyxlsx-1.1.0.tar.gz.

File metadata

  • Download URL: pyxlsx-1.1.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pyxlsx-1.1.0.tar.gz
Algorithm Hash digest
SHA256 3f4f9ca20f70a260affc0705a9dc73cd0f4cd3b7ee129e279dced0dd6279c9f1
MD5 65b65dde354a2a02de6e6529980cdeb4
BLAKE2b-256 a4ff0eb17be7176f753a1f970c4036ef1529277af73cc8c363b4ac6a22a14e48

See more details on using hashes here.

File details

Details for the file pyxlsx-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyxlsx-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for pyxlsx-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb98ab17364d43c24f306982d7dbfeb4d59e6cc77991e221e0e72c6bad8e7b68
MD5 2549bc095ab076860d9dcb1ee8d781ac
BLAKE2b-256 6d4a4ce06ee85bad3330062142aa599ed376de48567a715800f62e55e2b32bd3

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