Python 在多张图纸上打印列

Python 在多张图纸上打印列,python,excel,pandas,xlsxwriter,Python,Excel,Pandas,Xlsxwriter,使用以下代码,我可以为每个国家/地区创建excel文件,但无法格式化excel列: df=TOT.reset_index() for n, g in df.groupby('Country'): X = n.strip(" ") out_path = "C:/temp/" + n.strip(" ") + ".xlsx" C =TOTSPPerc.reset_index(level=0)[TOTSP.reset_index(level=0).Country==n].dr

使用以下代码,我可以为每个国家/地区创建excel文件,但无法格式化excel列:

df=TOT.reset_index()
for n, g in df.groupby('Country'):
    X = n.strip(" ")
    out_path = "C:/temp/" + n.strip(" ") + ".xlsx" 
    C =TOTSPPerc.reset_index(level=0)[TOTSP.reset_index(level=0).Country==n].drop('Country', axis=1)  
    B =TOTPerc.reset_index(level=0)[TOTPerc.reset_index(level=0).Country==n].drop('Country', axis=1) 
    A= TOTcntPerc.drop('Country', axis=1) 
    writer = pd.ExcelWriter(out_path , engine='xlsxwriter')

    format2 = workbook.add_format({'num_format': '0%'})

    A.to_excel(writer, sheet_name="Country")
    B.to_excel(writer, sheet_name="Stores")
    C.to_excel(writer, sheet_name="SPs")

    writer.save()
    print(n)
我需要为创建的每个文件的3张图纸中的每一张设置列
B:F

您可以将以下内容添加到每张图纸:

for n, g in df.groupby('Country'):
    print (g)
    #your code

    writer = pd.ExcelWriter(out_path , engine='xlsxwriter')

    A.to_excel(writer, sheet_name="Country")
    B.to_excel(writer, sheet_name="Stores")
    C.to_excel(writer, sheet_name="SPs")

    workbook  = writer.book
    worksheet1 = writer.sheets['Country']
    worksheet2 = writer.sheets['Stores']
    worksheet3 = writer.sheets['SPs']

    format2 = workbook.add_format({'num_format': '0%'})
    worksheet1.set_column('B:F', 18, format2)
    worksheet2.set_column('B:F', 18, format2)
    worksheet3.set_column('B:F', 18, format2)

    writer.save()
更具活力的解决方案:

for n, g in df.groupby('Country'):
    print (g)

    #your code

    writer = pd.ExcelWriter(out_path , engine='xlsxwriter')

    dfs = [A,B,C]
    sheetnames = ['Country','Stores','SPs']
    for i, df1 in enumerate(dfs):
        df1.to_excel(writer, sheet_name=sheetnames[i])
        workbook  = writer.book
        worksheet1 = writer.sheets[sheetnames[i]]
        format2 = workbook.add_format({'num_format': '0%'})
        worksheet1.set_column('B:F', 18, format2)

    writer.save()

检查-在该页上查找
set_column()
…添加了此项但不起作用:工作表.set_column('A:H',format2)