Skip to main content

High-performance .xlsx reader/writer (C extension)

Project description

openexcel

A high-performance Python library for reading and writing .xlsx files, implemented as a C extension. Designed as a drop-in accelerator for workloads where openpyxl is too slow.

Why

openpyxl is pure Python. For large files (100k+ rows), the bottlenecks are ZIP extraction, XML parsing, and per-cell object allocation — all done in the Python interpreter. openexcel moves these to C:

  • Streaming SAX parsing via libexpat — never loads the full XML into memory
  • Flat sorted cell array — O(1) append during parse, O(1) sequential iteration
  • GIL released during read and write — other threads run freely
  • Vendored miniz — no external ZIP dependency

Benchmarked against openpyxl on mixed workloads (integers, floats, booleans, dates, strings):

Rows Write speedup Read speedup
1,000 8.5× 5.3×
10,000 8.8× 5.2×
50,000 8.1× 5.3×
100,000 8.0× 5.3×
250,000 7.8× 5.4×

~8× faster writes, ~5× faster reads across all sizes tested.

Installation

pip install openexcel-c

Pre-built wheels are available for macOS (arm64, x86_64) and Linux (x86_64, aarch64) for Python 3.10–3.13.

Building from source

You need CMake ≥ 3.20, a C11 compiler, and libexpat development headers.

# macOS
brew install expat cmake

# Ubuntu/Debian
sudo apt-get install libexpat1-dev cmake

pip install openexcel-c --no-binary openexcel-c

Usage

Reading

import openexcel

wb = openexcel.load_workbook("data.xlsx")
ws = wb.active   # first sheet

# Iterate rows — returns tuples of Python values
for row in ws.iter_rows():
    print(row)   # e.g. (1, "hello", 3.14, True, datetime.date(2024, 6, 1))

# Slice a range
for row in ws.iter_rows(min_row=2, max_row=100, min_col=1, max_col=5):
    print(row)

Cell objects

# Single cell by A1 notation
cell = ws["A1"]
print(cell.value, cell.row, cell.column, cell.coordinate)  # 42, 1, 1, "A1"

# Single cell by row/column
cell = ws.cell(row=1, column=1)

# Range — returns tuple of tuples of Cell objects
cells = ws["A1:C3"]

# Set a value
cell.value = "hello"
cell.value = 3.14
cell.value = datetime.date(2024, 6, 1)

Cell values map to Python types:

Excel type Python type
Number float
String str
Boolean bool
Date / datetime datetime.date / datetime.datetime
Formula str (e.g. "=SUM(A1:A10)")
Empty None
Error str (e.g. "#DIV/0!")

Writing

import openexcel
import datetime

wb = openexcel.Workbook()
ws = wb.create_sheet("Sheet1")

ws.append(["Name", "Score", "Date"])
ws.append(["Alice", 98.5, datetime.date(2024, 6, 1)])
ws.append(["Bob",   72.0, datetime.date(2024, 6, 2)])

wb.save("output.xlsx")

Number formats

cell = ws["A1"]
cell.value = 0.1234
cell.number_format = "0.00%"   # displays as 12.34%

cell2 = ws["B1"]
cell2.value = 1234567.89
cell2.number_format = "#,##0.00"

# Read back the format string after loading
wb2 = openexcel.load_workbook("output.xlsx")
print(wb2[0]["A1"].number_format)  # "0.00%"

All built-in Excel format IDs (0–49) are recognized by format string. Custom format strings are assigned IDs starting at 164 and are round-tripped correctly.

Formulas

ws["A1"].value = 10
ws["A2"].value = 20
ws["A3"].value = "=SUM(A1:A2)"   # leading "=" marks a formula

# After save/load:
cell = wb2[0]["A3"]
print(cell.value)      # "=SUM(A1:A2)"
print(cell.data_type)  # "f"

Formulas are stored and round-tripped as strings. openexcel does not evaluate formulas — cached values from the original file are not preserved (matching openpyxl's default data_only=False behavior).

Sheet formatting

# Column and row dimensions
ws.set_column_width("A", 20)       # or set_column_width(1, 20)
ws.set_row_height(1, 30)

# Merged cells
ws.merge_cells("A1:C3")
ws.unmerge_cells("A1:C3")
print(ws.merged_cells)             # list of merged ranges

# Freeze panes
ws.freeze_panes = "B2"             # freeze row 1 and column A
ws.freeze_panes = None             # unfreeze

# Sheet view
ws.zoom_scale = 75
ws.show_gridlines = False
ws.tab_color = "FF0000"            # RRGGBB hex string

# Auto-filter
ws.auto_filter_ref = "A1:D1"

Named ranges

wb.add_defined_name("MyRange", "Sheet1!$A$1:$C$10")
print(wb.defined_names)            # {"MyRange": "Sheet1!$A$1:$C$10"}

Multiple sheets

wb = openexcel.load_workbook("multi.xlsx")

# By index
ws = wb[0]

# By name
ws = wb["Summary"]

# Iterate all sheets
for ws in wb:
    print(ws.title, ws.max_row, ws.max_column)

Context manager

with openexcel.load_workbook("data.xlsx") as wb:
    ws = wb.active
    data = [row for row in ws.iter_rows()]

API reference

openexcel.load_workbook(path: str) -> Workbook

Open an existing .xlsx file. Parses the entire file on load; subsequent access is from memory.

openexcel.Workbook()

Create a new empty workbook.

Workbook

Member Description
.active First sheet
[0] / ["Name"] Sheet by index or name
.create_sheet(name) Add a new sheet
.save(path) Write to .xlsx. GIL released during write.
.add_defined_name(name, value) Add a named range
.defined_names Dict of all named ranges

Worksheet

Member Description
.title Sheet name
.max_row / .max_column Dimensions
.append(row) Append a row of values
.iter_rows(min_row, max_row, min_col, max_col) Iterate rows as value tuples
["A1"] Get Cell by A1 notation
["A1:C3"] Get range as tuple-of-tuples of Cell
.cell(row, column) Get Cell by 1-based row/col
.merge_cells(range_str) Merge a cell range
.unmerge_cells(range_str) Remove a merge
.merged_cells List of merged ranges
.set_column_width(col, width) Set column width in character units
.set_row_height(row, height) Set row height in points
.freeze_panes Get/set freeze pane cell (e.g. "B2") or None
.zoom_scale Get/set zoom percentage (e.g. 75)
.show_gridlines Get/set gridline visibility
.tab_color Get/set tab color as RRGGBB hex string
.auto_filter_ref Get/set auto-filter range

Cell

Member Description
.value Get/set cell value
.number_format Get/set format string (e.g. "0.00%")
.row Row number (1-based)
.column Column number (1-based)
.coordinate A1-style coordinate string
.column_letter Column letter string
.data_type "n" number, "s" string, "b" bool, "d" date, "f" formula, "e" error

Differences from openpyxl

Feature openexcel openpyxl
Read speed ~5× faster (C, SAX) Baseline
Write speed ~8× faster (C, buffer) Baseline
Cell objects Cell with value, format, coordinate, data_type Full Cell
Number formats Read/write format strings Full format API
Formulas Read/write formula strings (no evaluation) Read/write formula strings
Merged cells Supported Supported
Named ranges Supported Supported
Freeze panes / zoom Supported Supported
Column/row dimensions Supported Supported
Font / fill / border Not yet supported Full style API
Conditional formatting Not yet supported Supported
Charts / images Not yet supported Supported
Data validation Not yet supported Supported
Comments Not yet supported Supported

License

MIT — see LICENSE.

Vendored dependencies:

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

openexcel_c-0.1.3.tar.gz (137.9 kB view details)

Uploaded Source

Built Distributions

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

openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (88.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (89.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

openexcel_c-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (76.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openexcel_c-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl (79.5 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (88.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (89.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

openexcel_c-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (76.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openexcel_c-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl (79.5 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (88.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (89.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

openexcel_c-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (76.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openexcel_c-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl (79.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (88.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (89.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

openexcel_c-0.1.3-cp310-cp310-macosx_11_0_arm64.whl (76.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

openexcel_c-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl (79.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file openexcel_c-0.1.3.tar.gz.

File metadata

  • Download URL: openexcel_c-0.1.3.tar.gz
  • Upload date:
  • Size: 137.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openexcel_c-0.1.3.tar.gz
Algorithm Hash digest
SHA256 26c5a9feca5a70a9d08563c8ad4382d03fca0c6a6518dae70c7f709866043462
MD5 fe27d1bb001045e0e02d4c8e92275235
BLAKE2b-256 c2d655d02b66ee3ee0231b56d755c78ae6f6f8b5c54abf5cabad8195d6b66871

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3.tar.gz:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 049bbf122535d27377dbbbb14890f605ebb66f4acedf26ffeff68f6014f55e81
MD5 7ea91a67a6d5cc1b88e0ff911c3eb3cf
BLAKE2b-256 05ee9f4d76e0563e7d1d7f73887ac924ee1204eb04592a42799aee45a73fdd66

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60e8edff3312c27a0fac77220c4b5ca0618d5126ba734e3e8be0d1c59175f2fa
MD5 f18bc815e93fcf027cc356142714c40b
BLAKE2b-256 c499e9a499c03398329133d4844750728fc64cfea662b45247f61c79bf2746b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc959505cd1e878bb4b262bce9d7b27ad3f14904293706347009786440de98e2
MD5 bbdce357f1a2d8fb1bc6041159a14a93
BLAKE2b-256 12b320c3af6af9e7cb351dbbe38a4ff160c1be5676ecf7e35ca92ca2b9679d19

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b2a60be417c1d2494f9c8cc09a4aff9f820163200f9209df099efe21729289d1
MD5 6b3e0b72790d5ea5105cebdd8b26a239
BLAKE2b-256 9bd119a161338b45fd1ca196c410dc4a8aafff885607f656ea3efa8e6c8661b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb6fba7c05d535bad998d6e3e9611a4dc7f8d6f05e0ddbe95acde0b82216d6db
MD5 b793a576c0e250af10a42fe412ca5ce9
BLAKE2b-256 e3a9a9bd145e38fa28bb1d81e353d6e5a148da3d8aba09d4d99f3347b7c42b8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9387baf28c370e1f62718fab99e58fd7083f25397396392ad9b011420a794bb5
MD5 6949d6222582f1d5040515cc4b43b76a
BLAKE2b-256 fdaa6d0fb2a42c976adfbedf56286e784682e5f4d06936ff716d800d28058067

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4af4d5a4761fccda9ec348295bb8481d6e3246284ad9e7bed98614071804b37e
MD5 098fb62b2b6e3a862353d0d991fb9d2e
BLAKE2b-256 127445762fce7982950a9b276f99fb84b29783b64fa243ddc4c97b5f94504e97

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 42d6958fa6c7078581b7b4a47d7cf992330b5dde5f1cac057cba01dcb0eaf17e
MD5 c27a8a9bd524b6aa26c975a5e4be3275
BLAKE2b-256 9bf71b0ea101051e755b695bbaaf34b61133d3a3344274330251bb53a78a4b26

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc430bb0e087b723215f17f18a90b73dec0569382904bfa3746c52aab4c71e59
MD5 07ab656f6f7acff2f0e2780dda3e4306
BLAKE2b-256 173dcd85ae9ed36719f312280c84e0a908caf3ceaecc2dfdfc8196a767ceacba

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5a1aed5cc01103cb31eaf2ed3edfb8d3e6a4f53e80868d943fa6318cef9a3168
MD5 b95d9d20b0ea6629e48729df04d3af5a
BLAKE2b-256 975043941655ab987b9069aa9c517b402a45b2cf2c0c5f08757e1e8e57d7ab21

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 108c02571ffeb202669f5f3a8a0152a39e1740158733bcd7ce47b8f8b93ec120
MD5 d796da2f6fc4e6530037d3d51b27a9f8
BLAKE2b-256 d684dd28d96681de3d4dede3d40a4761208afe4f2dcfc87fd8c6120b19c35f1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8d574030aefca3a138d0918d682760acce8f1b4f75991c9d949df536c8e24b99
MD5 aacb73f9bc9204a679b06567b82937e8
BLAKE2b-256 a1a4e1d531dc4606e145dc6edd7722202768829907bca641b4c4102c67c15542

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fba6e676f2038ddc6cd306a382030c87f401737be559f804a242cb615b7806cb
MD5 adec07216d7d5531654c163319cb5b58
BLAKE2b-256 2d7d4c555892ec0e8aebc7c00c2242bf941d6b524b11d5b4917c9b4ab2338344

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2e41a11a0a125a74e0b9cbd0af0ef754281e43c4e694e727764798fe6d703eaf
MD5 ba6ec12a2ce9c1a2d3286b93baece4b5
BLAKE2b-256 f5f9cc8c1056db6792ab3010cc094665687f87d2b6b2b0a919895486d4b334f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e4e324888dc415bbcd4366810867de6ba7e6aebfc726941a475e9740dc08b66
MD5 d0c280526e88aa530160f16894de58c9
BLAKE2b-256 b2f5a5077c8be4628c5dad478ab897424971d14e7b577f8d92e53b573849809b

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on karungop/openexCel

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

File details

Details for the file openexcel_c-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for openexcel_c-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c638b4c2259b24df5a1e9c7a4f5df380406ce5f59c27c66e6a9eed3248b03a10
MD5 fcfba0352f0f90e9a6d8aaf56c15692e
BLAKE2b-256 f728a237fae467adab555c16184d321b5361e6b79642f9ab58c494dcac2c2bae

See more details on using hashes here.

Provenance

The following attestation bundles were made for openexcel_c-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on karungop/openexCel

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