應用場景:定制一個Excel模板文件,其中定義了一個模板Sheet,以此模板文件里的模板sheet為樣例,制作報表,里面有不止一個模板樣例Sheet
一、軟件環境:
1.OS:Win10 64位
2.Python 3.7
二、准備:在測試文件夾下准備一個Excel模板文件,ExcelMod.xlsx,sheet name:mod
樣例如下:
三、參考代碼:
#! -*- coding utf-8 -*- #! Python Version 3.7 import openpyxl from openpyxl.styles import Font,Alignment def main(): sSourceFile="ExcelMod.xlsx" sTargetFile="Target.xlsx" wb = openpyxl.load_workbook(sSourceFile) copy_sheet1=wb.copy_worksheet(wb.worksheets[0]) copy_sheet2=wb.copy_worksheet(wb.worksheets[0]) copy_sheet3=wb.copy_worksheet(wb.worksheets[0]) wb.save(sTargetFile) print("It is over") if __name__=="__main__": main()
四、生成文件的樣例
生成的Sheet name分別是Mod Copy、Mod Copy1、Mod Copy2
五、Sheet name改名
如果想定制復制好的sheet name,可對sheet name進行修改,下例,把復制的第一個sheet,改為sheet1
參考代碼:
#! -*- coding utf-8 -*- #! Python Version 3.7 import openpyxl from openpyxl.styles import Font,Alignment def main(): sSourceFile="ExcelMod.xlsx" sTargetFile="Target.xlsx" wb = openpyxl.load_workbook(sSourceFile) copy_sheet1=wb.copy_worksheet(wb.worksheets[0]) copy_sheet2=wb.copy_worksheet(wb.worksheets[0]) copy_sheet3=wb.copy_worksheet(wb.worksheets[0]) copy_sheet1.title="Sheet1" wb.save(sTargetFile) print("It is over") if __name__=="__main__": main()
生成結果:
其它兩個復制的sheet,也可以分別修改
copy_sheet2.title="Sheet2"
copy_sheet3.title="Sheet3"

六、注意事項:Excel模板文件,只能是.xlsx格式的,不能是早期版本的.xls格式的,否則會報錯