复制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 @   沐雨辰沨  阅读(246)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示