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