[英]Conditional formatting under xlsxwriter enginer
我在數據框列“index_val”中有六個不同的值,我已將它們導入到同一工作簿的每個新工作表中。
df_dict = {}
for zone in df['index_val'].unique():
zone_df = df[df['index_val'] == zone]
df_dict[zone] = zone_df
def save_xlsx(df_dict, path):
with pd.ExcelWriter(path) as writer:
for key in df_dict:
df_dict[key].to_excel(writer, key, index=False)
writer.save()
save_xlsx(df_dict, 'report.xlsx')
Excel 工作表中生成的輸出尚未格式化以適合列寬。 比如說,第 1 列中的值要求列寬為 92,而 B 列中的值的寬度為 16。我嘗試使用set_column
方法,但由於工作表名稱存儲為字典,因此會拋出錯誤。
該數據的一個夾子是這樣的:
name_char index_val count
name1 A 36
name2 A 38
name3 B 76
name4 C 12
name3 C 25
name6 F 42
將有 6 張紙,每張紙的名稱都來自 index_val。 每個工作表都有第一列 name_char,第二列作為唯一的 index_val。 我喜歡將第一列的寬度設置為 92,將第二列的寬度設置為 16。或者,是否有一個過程可以根據每列的最大列值自動設置每列的寬度?
您可以執行以下操作:
df_dict = {}
for zone in df['index_val'].unique():
zone_df = df[df['index_val'] == zone]
df_dict[zone] = zone_df
def save_xlsx(df_dict, path):
with pd.ExcelWriter(path) as writer:
for key in df_dict:
df_dict[key].to_excel(writer, key, index=False)
workbook = writer.book
worksheet = writer.sheets[key]
worksheet.set_column(1, 1, 92)
worksheet.set_column(2, 2, 16)
writer.save()
save_xlsx(df_dict, 'report.xlsx')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.