Pandas 用ExcelWriter单独对单元格设置格式失败

导读:本篇文章讲解 Pandas 用ExcelWriter单独对单元格设置格式失败,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

需求:逐格写太费事,想以行写到Dataframe,然后再设置某一格格式(并不是所有的格子都要设置背景色)

以下是测试,先写行,再设置单元格格式:

需要数据为空,‘’ 的情况下,单独设置单元格式成功

    not_find2 = workbook.add_format({'bg_color': '#DCDCDC'})     
    for i in diff_data_1v2:  # type: dict
            """获取变更行的数据并格式化到excel"""
            # 表1数据: 格式化导出到excel
            line += 1
            is_new = self.write_changed_info_xls(worksheet, line, i.get("para"), describe_col_index_chr)  # 描述变更内容写到xls
            line_data = matrix_data.iloc[i.get('data1')]
            df2.loc[i.get('data1') + 2] = line_data.tolist()  # 行名的值 与行的索引差 2
            # 表2数据: 格式化导出到excel
            if is_new:
                df3.loc[data_index] = list(['', '', '', '', ''])
                df3_index[data_index] = 0
                for cr in data2_col_label_chr_dict.values(): # 新增的,逐格用灰色空格写
                    worksheet.write(cr + str(data_index + 3), '', not_find2)  # 写xls,索引从1开始
            else:
                df3.loc[data_index] = agile_data.iloc[i.get('data2')].tolist()
                df3_index[data_index] = i.get('data2') + 2  # 表2的行标签

            data_index += 1
    
    writer.if_sheet_exists = 'overlay'  # 写入Sheet方式改为追加
    df3.to_excel(excel_writer=writer, sheet_name=self.export_sheet_name, startrow=1)

但是,当

数据不为空,‘’ 的情况下,单独设置单元格式失败

df3.loc[data_index] = list(['', '', '', '', '']) 改成:
df3.loc[data_index] = list(['11', '', '', '', ''])

然后再执行woorksheet.write()设置格式,值为‘11’这个格式背景色设置会失败

解决:如是单个单元格,需要在完成df3.to_excel()这句之后,再单独设置: worksheet.write(0, row, column, format_head)

    writer = pd.ExcelWriter(excel_path)
    workbook = writer.book
    worksheet = writer.sheets['sheet0']
    worksheet.write(0, row, column, format_head)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/101578.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!