xlsxwriter引擎下的条件格式化
Conditional formatting under xlsxwriter enginer
我在数据框列 'index_val' 中有六个不同的值,我已将这些值导入到同一工作簿的每个新作品 sheet 中。
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 sheet 中生成的输出未格式化以适应列宽。比如,第 1 列中的值要求列宽为 92,而 B 列中的值的宽度为 16。我尝试使用 set_column
方法,但由于 sheet 名称存储为字典,因此它是抛回一个错误。
该数据的夹头是这样的:
name_char index_val count
name1 A 36
name2 A 38
name3 B 76
name4 C 12
name3 C 25
name6 F 42
将有 6 个 sheet,每个名字都来自 index_val。每个 sheet 都有第一列 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')
我在数据框列 'index_val' 中有六个不同的值,我已将这些值导入到同一工作簿的每个新作品 sheet 中。
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 sheet 中生成的输出未格式化以适应列宽。比如,第 1 列中的值要求列宽为 92,而 B 列中的值的宽度为 16。我尝试使用 set_column
方法,但由于 sheet 名称存储为字典,因此它是抛回一个错误。
该数据的夹头是这样的:
name_char index_val count
name1 A 36
name2 A 38
name3 B 76
name4 C 12
name3 C 25
name6 F 42
将有 6 个 sheet,每个名字都来自 index_val。每个 sheet 都有第一列 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')