Skip to main content

Python bindings for OpenXLSX using pybind11

Project description

pyopenxlsx

pyopenxlsx is a high-performance Python binding for the OpenXLSX C++ library. It aims to provide significantly faster read/write speeds compared to pure Python libraries like openpyxl, while maintaining a Pythonic API design.

Core Features

  • High Performance: Powered by the modern C++17 OpenXLSX library.
  • Pythonic API: Intuitive interface with properties, iterators, and context managers.
  • Async Support: async/await support for key I/O operations.
  • Rich Styling: comprehensive support for fonts, fills, borders, alignments, and number formats.
  • Memory Safety: Combines C++ efficiency with Python's automatic memory management.

Tech Stack

Component Technology
C++ Core OpenXLSX
Bindings pybind11
Build System scikit-build-core & CMake

Installation

Install from Source

# Using uv (Recommended)
uv pip install .

# Or using pip
pip install .

Development Installation

uv pip install -e .

Quick Start

Create and Save a Workbook

from pyopenxlsx import Workbook

# Create a new workbook
with Workbook() as wb:
    ws = wb.active
    ws.title = "MySheet"
    
    # Write data
    ws["A1"].value = "Hello"
    ws["B1"].value = 42
    ws.cell(row=2, column=1).value = 3.14
    
    # Save
    wb.save("example.xlsx")

Read a Workbook

from pyopenxlsx import load_workbook

wb = load_workbook("example.xlsx")
ws = wb["MySheet"]
print(ws["A1"].value)  # Output: Hello
wb.close()

Async Operations

import asyncio
from pyopenxlsx import load_workbook_async

async def main():
    wb = await load_workbook_async("example.xlsx")
    ws = wb.active
    print(ws["A1"].value)
    
    # Async save
    await wb.save_async("example_saved.async.xlsx")
    await wb.close_async()

asyncio.run(main())

Styling

from pyopenxlsx import Workbook, Font, Fill, Border, Side, Alignment, XLColor

wb = Workbook()
ws = wb.active

# Define styles
font = Font(name="Arial", size=14, bold=True, color=XLColor(255, 0, 0))
fill = Fill(pattern_type="solid", color=XLColor(255, 255, 0))
border = Border(
    left=Side(style="thin", color=XLColor(0, 0, 0)),
    right=Side(style="thin"),
    top=Side(style="thick"),
    bottom=Side(style="thin")
)
alignment = Alignment(horizontal="center", vertical="center", wrap_text=True)

# Apply style
style_idx = wb.add_style(font=font, fill=fill, border=border, alignment=alignment)
ws["A1"].value = "Styled Cell"
ws["A1"].style_index = style_idx

wb.save("styles.xlsx")

Insert Images

from pyopenxlsx import Workbook

wb = Workbook()
ws = wb.active

# Insert image at A1, automatically maintaining aspect ratio
# Requires Pillow: pip install pillow
ws.add_image("logo.png", anchor="A1", width=200)

# Or specify exact dimensions
ws.add_image("banner.jpg", anchor="B5", width=400, height=100)

wb.save("images.xlsx")

API Documentation

Module Exports

from pyopenxlsx import (
    # Core Classes
    Workbook, Worksheet, Cell, Range,
    load_workbook, load_workbook_async,
    
    # Style Classes
    Font, Fill, Border, Side, Alignment, Style, Protection,
    
    # Enums & Constants
    XLColor, XLSheetState, XLLineStyle, XLPatternType, XLAlignmentStyle,
    XLProperty, XLUnderlineStyle, XLFontSchemeStyle, XLVerticalAlignRunStyle,
    XLFillType,
)

Workbook Class

The top-level container for an Excel file.

Constructor

Workbook(filename: str | None = None)
  • filename: Optional. If provided, opens an existing file; otherwise, creates a new workbook.

Properties

Property Type Description
active Worksheet | None Get or set the currently active worksheet.
sheetnames list[str] Returns a list of all worksheet names.
properties DocumentProperties Access document metadata (title, author, etc.).
styles XLStyles Access underlying style object (advanced usage).
workbook XLWorkbook Access underlying C++ workbook object (advanced usage).

Methods

Method Return Type Description
save(filename=None) None Save the workbook. Saves to original path if filename is omitted.
save_async(filename=None) Coroutine Asynchronously save the workbook.
close() None Close the workbook and release resources.
close_async() Coroutine Asynchronously close the workbook.
create_sheet(title=None, index=None) Worksheet Create a new worksheet. title defaults to "Sheet1", etc.
create_sheet_async(...) Coroutine Asynchronously create a worksheet.
remove(worksheet) None Delete the specified worksheet.
remove_async(worksheet) Coroutine Asynchronously delete a worksheet.
copy_worksheet(from_worksheet) Worksheet Copy a worksheet and return the copy.
copy_worksheet_async(...) Coroutine Asynchronously copy a worksheet.
add_style(...) int Create a new style and return its index. See below.
add_style_async(...) Coroutine Asynchronously create a style.
get_embedded_images() list[ImageInfo] Get list of all images embedded in the workbook.
get_image_data(name) bytes Get binary data of an embedded image by its name or path.
extract_images(out_dir) list[str] Extract all images to a directory. Returns list of file paths.
extract_images_async(...) Coroutine Asynchronously extract all images.

add_style Method

def add_style(
    font: Font | int | None = None,
    fill: Fill | int | None = None,
    border: Border | int | None = None,
    alignment: Alignment | None = None,
    number_format: str | int | None = None,
    protection: Protection | None = None,
) -> int:

Returns: A style index (int) that can be assigned to Cell.style_index.

Example:

# Pass all styles via a Style object
from pyopenxlsx import Style, Font, Fill

style = Style(
    font=Font(bold=True),
    fill=Fill(color=XLColor(200, 200, 200)),
    number_format="0.00"
)
idx = wb.add_style(style)

Worksheet Class

Represents a sheet within an Excel file.

Properties

Property Type Description
title str Get or set the worksheet name.
index int Get or set the worksheet index (0-based).
sheet_state str Visibility: "visible", "hidden", "very_hidden".
max_row int Returns the maximum row index used.
max_column int Returns the maximum column index used.
rows Iterator Iterate over all rows with data.
merges MergeCells Access merged cells information.
protection dict Get worksheet protection status (read-only).

Methods

Method Return Type Description
cell(row, column, value=None) Cell Get cell by 1-based indices. Optionally set value.
range(address) Range Get range by string, e.g., ws.range("A1:C3").
range(start, end) Range Get range by endpoints, e.g., ws.range("A1", "C3").
merge_cells(address) None Merge cells, e.g., ws.merge_cells("A1:B2").
merge_cells_async(...) Coroutine Asynchronously merge cells.
unmerge_cells(address) None Unmerge cells.
unmerge_cells_async(...) Coroutine Asynchronously unmerge cells.
append(iterable) None Append a row of data after the last used row.
append_async(iterable) Coroutine Asynchronously append a row.
set_column_format(col, style_idx) None Set default style for a column. col can be int or "A".
set_row_format(row, style_idx) None Set default style for a row.
column(col) Column Get column object for width adjustments.
protect(...) None Protect the worksheet.
protect_async(...) Coroutine Asynchronously protect the worksheet.
unprotect() None Unprotect the worksheet.
unprotect_async() Coroutine Asynchronously unprotect.
add_image(...) None Insert an image.
add_image_async(...) Coroutine Asynchronously insert an image.

add_image Method

def add_image(
    img_path: str,
    anchor: str = "A1",
    width: int | None = None,
    height: int | None = None,
) -> None:
  • img_path: Path to image (PNG, JPG, GIF).
  • anchor: Top-left cell address.
  • width, height: Pixel dimensions. Requires Pillow for auto-detection if not provided.

Magic Methods

Method Description
__getitem__(key) Get cell by address: ws["A1"]

Cell Class

The fundamental unit of data in Excel.

Properties

Property Type Description
value Any Get/Set value. Supports str, int, float, bool, datetime.
formula Formula Get/Set formula string (without initial =).
style_index int Get/Set style index.
style int Alias for style_index.
is_date bool True if the cell has a date format.
comment str | None Get/Set cell comment. Set None to remove.
font XLFont Get font object (read-only).
fill XLFill Get fill object (read-only).
border XLBorder Get border object (read-only).
alignment XLAlignment Get alignment object (read-only).

Date Handling

If is_date is True, value automatically returns a Python datetime object.

# Write
ws["A1"].value = datetime(2024, 1, 15)
ws["A1"].style_index = wb.add_style(number_format=14)  # Built-in date format

# Read
print(ws["A1"].value)   # datetime.datetime(2024, 1, 15, 0, 0)
print(ws["A1"].is_date) # True

Formulas

Note: Formulas must be set via the formula property, not value.

# Correct
ws["A3"].formula = "SUM(A1:A2)" 

# Incorrect (treated as string)
ws["A3"].value = "=SUM(A1:A2)"

Range Class

Represents a rectangular area of cells.

Properties

Property Type Description
address str Range address, e.g., "A1:C3".
num_rows int Row count.
num_columns int Column count.

Methods

Method Return Type Description
clear() None Clear values in all cells of the range.
clear_async() Coroutine Asynchronously clear range.

Iteration

for cell in ws.range("A1:B2"):
    print(cell.value)

Style Classes

Font

Font(name="Arial", size=11, bold=False, italic=False, color=None)

Fill

Fill(pattern_type="solid", color=None, background_color=None)

Border

Border(left=Side(), right=Side(), top=Side(), bottom=Side(), diagonal=Side())

Side

Side(style="thin", color=None)

Styles: "thin", "thick", "dashed", "dotted", "double", "hair", "medium", "mediumDashed", "mediumDashDot", "mediumDashDotDot", "slantDashDot"

Alignment

Alignment(horizontal="center", vertical="center", wrap_text=True)

Options: "left", "center", "right", "general", "top", "bottom"


DocumentProperties

Accessed via wb.properties. Supports dict-like access.

  • Metadata: title, subject, creator, keywords, description, last_modified_by, category, company.
wb.properties["title"] = "My Report"
print(wb.properties["creator"])

Column Class

Accessed via ws.column(col_index) or ws.column("A").

Properties

Property Type Description
width float Get or set the column width.
hidden bool Get or set whether the column is hidden.
style_index int Get or set the default style index for the column.

Formula Class

Accessed via cell.formula.

Properties

Property Type Description
text str Get or set the formula string.

Methods

Method Return Type Description
clear() None Remove the formula from the cell.

MergeCells Class

Accessed via ws.merges. Represents the collection of merged ranges in a worksheet.

Methods

Method Return Type Description
append(reference) None Create a merged range (e.g., "A1:B2").
delete(index) None Remove a merged range by its index.
find(reference) int Find the index of a merged range. Returns -1 if not found.
__len__() int Return the number of merged ranges.
__getitem__(index) XLMergeCell Get a merged range object by index.
__iter__() Iterator Iterate over all merged ranges.
__contains__(ref) bool Check if a reference is within any merged range.

ImageInfo Class

Returned by wb.get_embedded_images().

Attributes

Attribute Type Description
name str Filename of the image.
path str Internal path in the XLSX archive.
extension str File extension (e.g., "png").

Helper Functions

load_workbook

def load_workbook(filename: str) -> Workbook:
    """Open an existing Excel file."""

load_workbook_async

async def load_workbook_async(filename: str) -> Workbook:
    """Asynchronously open an existing Excel file."""

is_date_format

def is_date_format(format_code: int | str) -> bool:
    """
    Check if a number format code (int) or string represents a date/time format.
    Useful for determining if a cell value should be treated as a datetime.
    """

Development

Run Tests

# Run all tests
uv run pytest

# With coverage
uv run pytest --cov=src/pyopenxlsx --cov-report=term-missing

License

MIT License. The underlying OpenXLSX library is licensed under its own terms.

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

pyopenxlsx-0.2.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyopenxlsx-0.2.1-cp314-cp314t-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

pyopenxlsx-0.2.1-cp314-cp314t-win32.whl (1.8 MB view details)

Uploaded CPython 3.14tWindows x86

pyopenxlsx-0.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pyopenxlsx-0.2.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenxlsx-0.2.1-cp314-cp314t-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pyopenxlsx-0.2.1-cp314-cp314-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.14Windows x86-64

pyopenxlsx-0.2.1-cp314-cp314-win32.whl (1.8 MB view details)

Uploaded CPython 3.14Windows x86

pyopenxlsx-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pyopenxlsx-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenxlsx-0.2.1-cp314-cp314-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyopenxlsx-0.2.1-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

pyopenxlsx-0.2.1-cp313-cp313-win32.whl (1.7 MB view details)

Uploaded CPython 3.13Windows x86

pyopenxlsx-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyopenxlsx-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenxlsx-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyopenxlsx-0.2.1-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

pyopenxlsx-0.2.1-cp312-cp312-win32.whl (1.7 MB view details)

Uploaded CPython 3.12Windows x86

pyopenxlsx-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyopenxlsx-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenxlsx-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyopenxlsx-0.2.1-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

pyopenxlsx-0.2.1-cp311-cp311-win32.whl (1.7 MB view details)

Uploaded CPython 3.11Windows x86

pyopenxlsx-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyopenxlsx-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyopenxlsx-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file pyopenxlsx-0.2.1.tar.gz.

File metadata

  • Download URL: pyopenxlsx-0.2.1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1.tar.gz
Algorithm Hash digest
SHA256 542db6dae556f268e227831e081c519dd2ddbca4f9f2f177d82c80e6d395ac0f
MD5 70835d578d053a915521a8b8e72cc761
BLAKE2b-256 5eb95db5d593686a40da2a25decb9d3ece48134797eb68ac73ec1df09871fe41

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1.tar.gz:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 978f8458f8060cfd5d5c3752e33e71daa8094bdc6ea9f852b19f44359b6018ac
MD5 f33999b422a65e17a135cfca75edf1a8
BLAKE2b-256 a4afc00e2e0dffc0d3971a5e88c501709338444c1715fb03cb7b995f9f505b17

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314t-win_amd64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314t-win32.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 6208cbefd568c599e84ea936afefc10e2a89bff0bfbe19111b2a534326a582c0
MD5 15618cfe00b87acae98084193c479c0d
BLAKE2b-256 55e763120a6844f42a29b851caad940f3162d042644c29a0ebd62f0bc35797f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314t-win32.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4536a396915d4db754c27da472d25f86f560a179db47fffb786e95889f035e7a
MD5 4863ed1abe8e4e26845de0a76be24d7a
BLAKE2b-256 f84b3fd16699598e5db5c0a685c3e851e7e0fbf9422561bd5d1374eb38a1cceb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 43279d71ba10e35e0563517f476e76416931a3c15e19acc7cfad9d84a77011bd
MD5 c74afe0468871b4b6e2babcaf0375bec
BLAKE2b-256 093372e54f55ebda88180275146b36be3d1bae0a39f944c75e8151170db5f63a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21660eec3f6a33bed7e5ef0a6d1caca841f3f8cb0f590dddfaf71c3e86768bd9
MD5 28b307b92027d81623dca6d12b4e7a85
BLAKE2b-256 238a61682098545d347d5767c1de5b8714dae1b801efbaac2577132a3e66a517

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6599ef87f246c9169d626e1ed9973a88b3a3b7bc5702d4869dbe08f8bc181b2e
MD5 5d06eb23d864117bca94bff6be53596e
BLAKE2b-256 ba811c202bb75b0cd5b61767eac68a53972e82a599a22794b8cb7e27b993238e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314-win_amd64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314-win32.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp314-cp314-win32.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 574141313fd1182e9425fe480c448836e6fb3274fe90bd03f91b4a2316514dad
MD5 d65fad0cd12eceb8c8de6f99008bb1d6
BLAKE2b-256 a53ac942f2ee30bc198a890ea40a16b095583f3befa7930cdba8fb757014c064

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314-win32.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 644c021e5e0a934027d99596e797b2d21e7158f3d7c70b80ef271ba7aca4aebc
MD5 9960be7995bc5c71182c1859cb00a8a3
BLAKE2b-256 729cc764bc7daac63b564eb33eae02c63cf638b7f04c13ef211ef58c88434269

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55015916b080381bbe411b30d7cbe91f955cb2b237845628021473affa657fcc
MD5 b0b36781e84e068d20bdbd80fb57585e
BLAKE2b-256 2b98eb0f0616ce4c6a675a2d6e9f4fac057952a8c84375ef8f88f5ddb7329a04

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f9cf6fa5fac4f271539194a31f4759f51f23123de264f63951b08caccd9e2cd
MD5 6df21d0b032c49f1dac358e4d2e205c3
BLAKE2b-256 0ff158ea8cf055c4b84f169b285b5aae492a4c3f61fa1e4430676b93b4330743

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b7b33b422fdf0316730180714f0c2bbd6f67c52b259d9af5a8dec962982e1669
MD5 263724cd9d08da295f5e94931e5d20fd
BLAKE2b-256 51303254c6f7cd473ad11c0f7e0846917054b43863e63ad39107f310ed957896

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp313-cp313-win_amd64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 cb4cf5a960d67a8a8ff4397c51cb7690e9d681b9cd9b181e608a1f3a08ec92dd
MD5 880687b4c2c5df708346ebd016069cf3
BLAKE2b-256 df25d96de8d0a4a9249da27459d33bb8403972d016c4a04577a6107efea9a1bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp313-cp313-win32.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0bf767aa0d4e24ffffc3a9abccdde408c8b8bb84a69d139283f969079b8b0d4e
MD5 891e51150b457fed6d3c88893d445692
BLAKE2b-256 d5593ec0e9845d7b655d62cd0afde261796f63badd2d45fe35e938c6f60dbc7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 89a56378b53c0f653516ed2f2d8829b985c91f1bd70f44c2bf327fd90d2fb5fd
MD5 30f72ecbbf30d43e31630c3f94f89bf9
BLAKE2b-256 f1faa1a3193750d98897dec394612d55ec3b8f67ea0bfa956086ab037c46a89d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc4574ce413c2174a7bda6411ed52d7a0ad2de6a007150d4555f1ca6a0652ff9
MD5 27dec00f86829abf06b6d66b93dbc7d2
BLAKE2b-256 88e58758ba14854480752e725ac07d6ef5a59094fc40d747c1b862e96ffaa921

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cf63a6986debaddefcd5493584d0617b43414131dfee73bf966adf1a052e8f23
MD5 262b821d47c4806b1d3452b2bf2e9493
BLAKE2b-256 0523b6521f492403aaee292b803434d60e138db2a0720fc6387852b881db77fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp312-cp312-win_amd64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 1a2734df31d25af91c22926020c204fef0bc25b6ec295e548aae91fb760832ac
MD5 a2835743b7f156fa721fefbe8f5bb482
BLAKE2b-256 3aa1a7d63ddcc8fa352cfe1d6a57ea4bee37a63dc78f74cf4fb0efee0271f4e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp312-cp312-win32.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9636e20a253e4fcc03677d6ac81570c81056ca1cce862450ddfa8c58af07c0ef
MD5 844596ed353100042cd188ea6ffeb1f3
BLAKE2b-256 8bfa72ad02dfa0bc9cf9aac273d3a389a26012d417656949b30be32672733ac2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2febed23aecc3529194e35611a0edb4d5869462cb6f9baf2a2fa1189d4936cfe
MD5 5921fcc66f2495700dbda939975efe57
BLAKE2b-256 2d71310dd70ff366c46391b850fc7fdd9d2d8bd98447c8aec06b1c33a789bf0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 942a546f51a396074d8195a30c0d346a625b1c636390fde1ff88b8cb65a6d1d1
MD5 5d0948749631710dac53780a80b8971a
BLAKE2b-256 be8af1c3bde255d24d503925d1ce53012efd7410d5950fadc57101f07a4dc4d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e8e4039ff88fa01b12f5735c332d29224c1d4bae85dcbabc300e950d8c836280
MD5 5e5e5769905684294f1875ca4e11ade8
BLAKE2b-256 da2d735650fde47bd6e2b9dc5a7f32329830b2d4d00d7879a46a014774849270

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp311-cp311-win_amd64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: pyopenxlsx-0.2.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyopenxlsx-0.2.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 697a10a1c406a64384b9315d9751a8501175358eb6296c1a857d15e54f5ac9b0
MD5 9fa8acbdadf5f4682136dae06e999d4d
BLAKE2b-256 3f59d98c59745edb5bccb5ab83530577d8a67665919da464197b513a1a2ee1e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp311-cp311-win32.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d5e2366c852a1df0e865c590eee6bac34ff71f5ae0e5caf5efa81ccd664a09a5
MD5 b963f25d1dcead11b3f6caff9a5acf39
BLAKE2b-256 6ff1c294b4d08420dfc9dfba9f0e804401e03be1d7d16d4a299fa28d8518380f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aad5fa4db34c756e17926e0aa8edf3eef0f1811b5faad72d6c77eb2319c2671a
MD5 83f6828904cd9d28b8ac122c786b3112
BLAKE2b-256 5b2bc378bd7a0f156dac13f556cf4383a7d20d44982bc64104dbbfe1aa854a7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyopenxlsx-0.2.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyopenxlsx-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b478658f8328cefb899a297f87a02739a3f3c2fb59b712fac99707bc1b82c67b
MD5 466214660feb542fdfd9dc32bbf1874e
BLAKE2b-256 0742dda1a263040c14a311f2d6e6d8d771bdb4a43ea1f70cfb3b260c6553299b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyopenxlsx-0.2.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build.yml on twn39/pyopenxlsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page