• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python批量处理工作簿和工作表的实现示例

    批量新建并保存工作簿

    代码

    import xlwings as xw
    # 启动 Excel,但不新建工作簿
    app = xw.App(visible=True,add_book=False)
    
    for i in range(5):
     #新建工作簿
        workbook = app.books.add()
        #保存工作簿
        workbook.save(f'test{i}.xlsx')
        #将工作簿关闭
        workbook.close()

    批量打开一个文件夹中的打开工作簿

    import xlwings as xw
    import os
    # 给出工作簿所在的文件夹路径
    path_file = r'E:/python1/python_module'
    # 列出该文件夹中所有的子文件或子文件夹
    file_list = os.listdir(path_file)
    # 启动Excel
    app = xw.App(visible=True,add_book=False)
    
    for i in file_list:
        # 判断文件是否为 Excel文件
        if os.path.splitext(i)[1] =='.xlsx':
            #打开
            app.books.open(i)

    批量重命名一个工作簿的所有工作表

    import xlwings as xw
    
    # 启动Excel
    app = xw.App(visible=True,add_book=False)
    # 打开工作簿
    workbook = app.books.open('table.xlsx')
    #获取工作簿的所有工作表
    worhsheets = workbook.sheets
    
    for i in range(len(worhsheets)):
        # 重命名工作表
        worhsheets[i].name = worhsheets[i].name.replace('销售','')
    #另存重命名后的工作簿
    workbook.save('table1.xlsx')
    #退出Excel程序
    app.quit()

    批量重命名多个工作簿

    不过这是有前提条件的,要重命名的工作簿名必
    须是有规律的,如表1、表2、表3;或者含有相同的关键字。

    import xlwings as xw
    import os
    # 给出工作簿所在的文件夹路径
    path_file = r'E:/python1/python_module'
    # 列出该文件夹中所有的子文件或子文件夹
    file_list = os.listdir(path_file)
    old_book_name = '销售表'
    new_book_name = '分部销售表'
    # 启动Excel
    app = xw.App(visible=True,add_book=False)
    
    for i in file_list:
        if i.startswith('~$'):
            continue
        # 执行查找和替换,生成新的工作簿名
        new_file = i.replace(old_book_name,new_book_name)
        # 构造需要重命名工作簿的完整路径
        old_path_filr = os.path.join(path_file,i)
        #构建重命名后工作簿的完整路径
        new_path_file = os.path.join(path_file,new_file)
        # 重命名
        os.rename(old_path_filr,new_path_file)
    
    if i.startswith('~$'):
    continue

    因为Excel会在使用过程中生成一些文件名以"~$"开头的临时文件,如果有这些文件就跳过。

    批量重命名多个工作簿中的同名工作表

    步骤

    代码:

    import xlwings as xw
    import os
    # 给出工作簿所在的文件夹路径
    path_file = r'E:/python1/python_module'
    # 列出该文件夹中所有的子文件或子文件夹
    file_list = os.listdir(path_file)
    old_sheet = 'sheet1'
    new_sheet = '员工信息'
    app = xw.App(visible=True,add_book= False)
     # 遍历工作簿
    for i in path_file:
        if i.startswith('~$'):
            continue
        # 拼接出完整路径
        old_path_file = os.path.join(path_file,i)
        # 打开工作簿
        workbook = app.books.open(old_path_file)
        # 遍历工作表
        for j in workbook.sheets:
            if j.name == old_sheet:
                j.name = new_sheet
        # 保存工作簿
        workbook.save()
    app.quit()

    将一个工作簿的所有工作表批量复制到其他工作簿

    步骤:

    代码

    import xlwings as xw
    import os
    # 给出工作簿所在的文件夹路径
    path_file = r'E:/python1/python_module'
    # 列出该文件夹中所有的子文件或子文件夹
    file_list = os.listdir(path_file)
    app = xw.App(visible=True,add_book= False)
    workbook = app.books.open('来源工作簿路径')
    worksheet = workbook.sheets
     # 子文件
    for i in path_file:
        if os.path.splitext(i)[1] =='.xlsx':
            # 打开工作簿
            workbooks = app.books.open(path_file+'/'+i)
            # 遍历工作表
            for j in worksheet:
                # 读取工作表中的信息
                contents = j.range('A1').expand('table').value
                # 读取工作表的名称
                name = j.name
                # 增加同名的工作表
                workbooks.sheets.add(name = name,after = len(workbooks.sheets))
                # 写入数据
                workbooks.sheets[name].range('A1').value = contents
            # 保存工作簿
            workbook.save()
    app.quit()

    .expand()是xlwings模块中的函数,用于扩展选择范围。语法格式如下

    expand(mode) 默认值是 ‘table',表示向整个数据表扩展。也可以是'down'(下方)或'right'(右方)

    按条件将一个工作表拆分为多个工作簿

    import  os
    import xlwings as xw
    
    filr_path = 'e:\\table\\产品统计表.xlsx'
    sheet_name = '统计表'
    
    app = xw.App(visible = True ,add_book= False)
    # 打开工作簿
    workbooh = app.books.open(filr_path)
    # 获取指定的工作表
    worksheet = workbooh.sheets[sheet_name]
    # 读取工作表中的所有信息
    value = worksheet.range('A2').expand('table').value
    # 创建一个空字典用于按产品名称来分类存放数据
    data = dict()
    #按行遍历工作表数据
    for i in range(len(value)):
        # 获取当前行的第一个空格中的数据
        product_name = value[i][1]
        # 如果没有该产品
        if product_name not in data:
            # 创建一个与当前行名称对应的空列表
            data[product_name] = []
        # 将当前数据追加当列表中
        data[product_name].append(value[i])
    
    for key,value in data.items():
        # 新建目标工作簿
        new_workbook = app.books.add()
        #新建工作表
        new_sheet = new_workbook.sheets.add(key)
        # 将要拆分的工作表的列标题复制到新建的工作表中
        new_sheet['A1'].value = worksheet['A1:H1'].value
        # 将数据复制
        new_sheet['A2'].value = value
        new_workbook.save('{}.xlsx'.format(key))
    
    app.quit()

    到此这篇关于Python批量处理工作簿和工作表的实现示例的文章就介绍到这了,更多相关Python批量处理工作簿和工作表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python自动化之批量处理工作簿和工作表
    上一篇:Python字典中items()函数案例详解
    下一篇:Python中read,readline和readlines的区别案例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python批量处理工作簿和工作表的实现示例 Python,批量,处理,工作簿,