Skip to content

Commit 406f61f

Browse files
committed
BUG: xlsxwriter was not able to write date and datetime objects
1 parent 05bf052 commit 406f61f

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

pandas/io/excel.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -714,11 +714,14 @@ class _XlsxWriter(ExcelWriter):
714714
engine = 'xlsxwriter'
715715
supported_extensions = ('.xlsx',)
716716

717-
def __init__(self, path, engine=None, **engine_kwargs):
717+
def __init__(self, path, engine=None,
718+
date_format=None, datetime_format=None, **engine_kwargs):
718719
# Use the xlsxwriter module as the Excel writer.
719720
import xlsxwriter
720721

721-
super(_XlsxWriter, self).__init__(path, engine=engine, **engine_kwargs)
722+
super(_XlsxWriter, self).__init__(path, engine=engine,
723+
date_format=date_format, datetime_format=datetime_format,
724+
**engine_kwargs)
722725

723726
self.book = xlsxwriter.Workbook(path, **engine_kwargs)
724727

@@ -777,12 +780,16 @@ def _convert_to_style(self, style_dict, num_format_str=None):
777780
style_dict: style dictionary to convert
778781
num_format_str: optional number format string
779782
"""
780-
if style_dict is None:
781-
return None
782783

783784
# Create a XlsxWriter format object.
784785
xl_format = self.book.add_format()
786+
787+
if num_format_str is not None:
788+
xl_format.set_num_format(num_format_str)
785789

790+
if style_dict is None:
791+
return xl_format
792+
786793
# Map the cell font to XlsxWriter font properties.
787794
if style_dict.get('font'):
788795
font = style_dict['font']
@@ -803,9 +810,6 @@ def _convert_to_style(self, style_dict, num_format_str=None):
803810
if style_dict.get('borders'):
804811
xl_format.set_border()
805812

806-
if num_format_str is not None:
807-
xl_format.set_num_format(num_format_str)
808-
809813
return xl_format
810814

811815
register_writer(_XlsxWriter)

0 commit comments

Comments
 (0)