• Python学习笔记_使用openpyxl操作Excel,在同一个文件里复制某一个sheet


    应用场景:定制一个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格式的,否则会报错

  • 相关阅读:
    ASP.NET在MVC控制器中获取Form表单值的方法
    MVC中几种常用ActionResult
    EF 配置MySQL
    HTTP 错误 403.6
    26个Jquery使用小技巧(转)
    Win2008R2配置WebDeploy(转)
    IIS快捷方式
    发布你的程序包到Nuget
    PostgreSQL recovery.conf恢复配置
    PostgreSQL 9.5 高可用、负载均衡和复制
  • 原文地址:https://www.cnblogs.com/SH170706/p/10498648.html
Copyright © 2020-2023  润新知