diff --git a/pandas/io/excel/_base.py b/pandas/io/excel/_base.py index 6362e892f0012..35de5fb075e11 100644 --- a/pandas/io/excel/_base.py +++ b/pandas/io/excel/_base.py @@ -2,6 +2,7 @@ import abc import datetime +from decimal import Decimal from functools import partial from io import BytesIO import os @@ -48,6 +49,7 @@ from pandas.core.dtypes.common import ( is_bool, + is_decimal, is_float, is_integer, is_list_like, @@ -1368,6 +1370,8 @@ def _value_with_fmt(self, val) -> tuple[object, str | None]: val = int(val) elif is_float(val): val = float(val) + elif is_decimal(val): + val = Decimal(val) elif is_bool(val): val = bool(val) elif isinstance(val, datetime.datetime):