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


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

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

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

    1. not_find2 = workbook.add_format({'bg_color': '#DCDCDC'})
    2. for i in diff_data_1v2: # type: dict
    3. """获取变更行的数据并格式化到excel"""
    4. # 表1数据: 格式化导出到excel
    5. line += 1
    6. is_new = self.write_changed_info_xls(worksheet, line, i.get("para"), describe_col_index_chr) # 描述变更内容写到xls
    7. line_data = matrix_data.iloc[i.get('data1')]
    8. df2.loc[i.get('data1') + 2] = line_data.tolist() # 行名的值 与行的索引差 2
    9. # 表2数据: 格式化导出到excel
    10. if is_new:
    11. df3.loc[data_index] = list(['', '', '', '', ''])
    12. df3_index[data_index] = 0
    13. for cr in data2_col_label_chr_dict.values(): # 新增的,逐格用灰色空格写
    14. worksheet.write(cr + str(data_index + 3), '', not_find2) # 写xls,索引从1开始
    15. else:
    16. df3.loc[data_index] = agile_data.iloc[i.get('data2')].tolist()
    17. df3_index[data_index] = i.get('data2') + 2 # 表2的行标签
    18. data_index += 1
    19. writer.if_sheet_exists = 'overlay' # 写入Sheet方式改为追加
    20. 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)

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

  • 相关阅读:
    JVM调优命令和常见工具
    关于蓝绿发布(Blue-Green Deployment)
    Python学习笔记 - 函数和lambda表达式 (2)
    阿里云数据库MongoDB恢复到本地
    【nacos】5.3 nacos 更新mqtt配置,自动加载连接EMQX
    A-Level经济真题每期一练(53)
    DBCO的PEG连接剂1480516-75-3,DBCO-PEG4-Maleimide(MAL)
    Elasticsearch 中 term和 query 哪个更精确,有什么区别
    CI/CD简介
    SpringBoot集成腾讯云云点播服务/视频上传
  • 原文地址:https://blog.csdn.net/LlanyW/article/details/127132415