Update package to 3.1.5.
Changes since 3.0.10:
3.1.0: Added support for data table formulae; Rich Text in cells; Custom
Document Properties; mapped chartspace graphical properties to charts.
Breaking: removed deprecated workbook methods (get_named_range,
add_named_range, remove_named_range) and several worksheet properties.
Bug fixes: fixed table filters being overridden, various dataframe and
multiindex alignment issues.
3.1.1: Fixed DocumentProperties times being set only at module import;
fixed missing worksheet-specific definitions.
3.1.2: Fixed reading worksheets in read-only mode with locally scoped
definitions; fixed empty custom properties causing invalid files.
3.1.3: Major performance fixes -- column name caching, pivot table
loading, custom properties reading; fixed rich-text save without lxml;
fixed file handler leaks; fixed timedelta reading in read-only mode;
improved duplicate named styles handling.
3.1.4: Minor bug fixes and stability improvements.
3.1.5: Latest stable release with cumulative fixes.
Add test.sh to verify write/read roundtrip of xlsx workbooks.
Signed-off-by: Alexandru Ardelean <redacted>
include $(TOPDIR)/rules.mk
PKG_NAME:=python-openpyxl
-PKG_VERSION:=3.0.10
+PKG_VERSION:=3.1.5
PKG_RELEASE:=1
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
PKG_CPE_ID:=cpe:/a:python:openpyxl
PYPI_NAME:=openpyxl
-PKG_HASH:=e47805627aebcf860edb4edf7987b1309c1b3632f3750538ed962bbcc3bd7449
+PKG_HASH:=cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050
include ../pypi.mk
include $(INCLUDE_DIR)/package.mk
--- /dev/null
+#!/bin/sh
+
+[ "$1" = python3-openpyxl ] || exit 0
+
+python3 - << 'EOF'
+import openpyxl
+import tempfile
+import os
+
+# Create a workbook and write data
+wb = openpyxl.Workbook()
+ws = wb.active
+ws.title = "TestSheet"
+ws["A1"] = "Hello"
+ws["B1"] = 42
+ws["A2"] = "World"
+ws["B2"] = 3.14
+
+# Save to a temp file and reload
+with tempfile.NamedTemporaryFile(suffix=".xlsx", delete=False) as f:
+ path = f.name
+
+try:
+ wb.save(path)
+ wb2 = openpyxl.load_workbook(path)
+ ws2 = wb2["TestSheet"]
+ assert ws2["A1"].value == "Hello", f"Expected 'Hello', got {ws2['A1'].value}"
+ assert ws2["B1"].value == 42, f"Expected 42, got {ws2['B1'].value}"
+ assert ws2["A2"].value == "World"
+ assert abs(ws2["B2"].value - 3.14) < 1e-9
+finally:
+ os.unlink(path)
+EOF