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

需求:逐格写太费事,想以行写到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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值