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
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.
Source Distribution
pyxlsx-1.1.2.tar.gz
(13.8 kB
view details)
Built Distribution
pyxlsx-1.1.2-py3-none-any.whl
(17.3 kB
view details)
File details
Details for the file pyxlsx-1.1.2.tar.gz
.
File metadata
- Download URL: pyxlsx-1.1.2.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcef24ef6b225da3818e82ba6f963c6f4957f02137e784d957c243b8f0cbf077 |
|
MD5 | de17f390d29481ed890f0db7f87d1cc1 |
|
BLAKE2b-256 | 22ad881a67acd09fa41f21b7ea4a9b2e4e3acb0512c1383fb8aea5d6ef15f978 |
File details
Details for the file pyxlsx-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: pyxlsx-1.1.2-py3-none-any.whl
- Upload date:
- Size: 17.3 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13a551c4dd93970451473020618b38407d91759d56d80d7bf4b1f3894fa74889 |
|
MD5 | 3ce444d3e516db845f33c37da08aec3d |
|
BLAKE2b-256 | ae6967f74c4fe30513bcd6ce9289c958c4831d5f7475c3bbd9cb60a511e7e945 |