复制sheet

-- coding: utf-8 --

"""
Created on Mon Jan 14 12:02:42 2019
python 调用 win32com 处理 excel 文件
"""

import win32com.client as 包_win32工具
import os as 包_系统工具


def 方法_获取文件目录(文件路径):
    文件集 =  包_系统工具.listdir(文件路径)
    return 文件集

def 方法_跨文件复制表(文件路径,文件集):
    excel工具 = 包_win32工具.Dispatch('Excel.Application')
    excel工具.visible = 1 # 此行设置打开的Excel表格为可见状态;忽略则Excel表格默认不可见
    目标文件 = excel工具.Workbooks.Add() #新建立excel文件
    目标表_集合 = 目标文件.Worksheets
    for 文件名 in 文件集:
        文件名分解 = 文件名.split('.')
        print(文件名分解)
        if 文件名分解[-1] == 'xlsx' or 文件名分解[-1] == 'xls':
            文件 = excel工具.Workbooks.Open(文件路径 + '\\'+ 文件名)
            表_集合 = 文件.Worksheets
            表_集合(1).Copy(None,目标表_集合(1)) #跨表复制,插入第一个表之后,记得 Copy 首字母大写
            目标表_集合(2).Name = 文件名分解[0]  #由于新表总是在第二个表,所以第二个表改名就可了.
            文件.Close(SaveChanges=0)
        else:
            pass
    目标文件.SaveAs(文件路径 + r'\处理后的文件.xlsx')
    目标文件.Close(SaveChanges=0)

def 方法_主程序(文件路径):
    文件集 = 方法_获取文件目录(文件路径)
    方法_跨文件复制表(文件路径,文件集)
    return

if __name__ == '__main__':
    文件路径 = r"你的文档路径"
    方法_主程序(文件路径)

原文链接:https://zhuanlan.zhihu.com/p/54847656

posted @ 2021-01-04 16:25  沐雨辰沨  阅读(255)  评论(0)    收藏  举报