Skip to content

Commit acdb96d

Browse files
BUG: fix bug with openpyxl on read_only mode
Co-Authored-By: Dacops <[email protected]>
1 parent a57c45e commit acdb96d

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

pandas/io/excel/_base.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -514,17 +514,14 @@ def read_excel(
514514
if engine_kwargs is None:
515515
engine_kwargs = {}
516516

517-
# set to false so cells have a comment attribute
518-
if notes is not None and engine == "openpyxl":
519-
engine_kwargs = {"read_only": False}
520-
521517
if not isinstance(io, ExcelFile):
522518
should_close = True
523519
io = ExcelFile(
524520
io,
525521
storage_options=storage_options,
526522
engine=engine,
527523
engine_kwargs=engine_kwargs,
524+
notes=notes,
528525
)
529526
elif engine and engine != io.engine:
530527
raise ValueError(
@@ -1574,6 +1571,8 @@ class ExcelFile:
15741571
{storage_options}
15751572
engine_kwargs : dict, optional
15761573
Arbitrary keyword arguments passed to excel engine.
1574+
notes : DataFrame, default None
1575+
DataFrame that holds notes of the Excel file.
15771576
15781577
See Also
15791578
--------
@@ -1609,6 +1608,7 @@ def __init__(
16091608
engine: str | None = None,
16101609
storage_options: StorageOptions | None = None,
16111610
engine_kwargs: dict | None = None,
1611+
notes: DataFrame | None = None,
16121612
) -> None:
16131613
if engine_kwargs is None:
16141614
engine_kwargs = {}
@@ -1655,6 +1655,10 @@ def __init__(
16551655
self.engine = engine
16561656
self.storage_options = storage_options
16571657

1658+
# set so the engine can access the notes from a cell
1659+
if notes is not None and engine == "openpyxl":
1660+
engine_kwargs.update({"read_only": False})
1661+
16581662
self._reader = self._engines[engine](
16591663
self._io,
16601664
storage_options=storage_options,

0 commit comments

Comments
 (0)