首页 > 解决方案 > 导出到excel时如何设置熊猫日期时间列的样式?

问题描述

我有这段代码来设置列样式:

    column_format = self.workbook.add_format({'border': 1, 'align': 'center'})
    worksheet.set_column(column_name, column.get("width", 20), column_format)

风格运作良好,但日期时间列。

我认为这是因为 pandas 对 datetime 列有自己的风格,而当我导出到 excel 时,它会覆盖头脑。

我试图在熊猫本身中设置风格 -

tab_df_styler = tab_df.style.apply(lambda x: 
                                   ['border-width: 1px; border-style:solid; border-color: black' for v in x])

但后来情况变得更糟,它覆盖了所有的 excel 样式。例如对齐。

标签: pythonpandas

解决方案


我通过使用 worksheet.write_datetime 解决了我的问题:

    # fix datetime columns style
    series = data[column.get("field")]
    if pd.core.dtypes.common.is_datetime_or_timedelta_dtype(series):
        column_format.num_format = 'yyyy-mm-dd hh:mm:ss'
        for row_index, value in enumerate(pd.to_datetime(data[column.get("field")])):
            if not pd.isnull(value):
                worksheet.write_datetime(row_index + start_row - 1, column_index - 1, value, column_format)

推荐阅读