Python调用接口合并Excel表代码实例

 更新时间:2020年03月31日 12:02:35   作者:Johnthegreat  
这篇文章主要介绍了Python调用接口合并Excel表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在工作中经常遇到需要打开许多个excel表格,然后合并的需求,合并的同时要求格式必须原汁原味的保留。利用VBA代码可以比较轻松的解决,现在我们来看Python中如何实现。

上代码:

from openpyxl import Workbook
from win32com.client import Dispatch
import os
import datetime
 
 
def copy_excel_file(source_file_list, destination_file):
  run_app = Dispatch('Excel.Application')
  run_app.Visible = False # 改为True可以看到excel的打开窗口
 
  for file in source_file_list:
    source_workbook = run_app.Workbooks.Open(Filename=file)
    destination_workbook = run_app.Workbooks.Open(Filename=destination_file)
 
    source_workbook.Worksheets(1).Copy(Before=destination_workbook.Worksheets(1))
    destination_workbook.Close(SaveChanges=True)
 
  run_app.Quit()
 
 
class ParameterGenerator:
 
  def __init__(self):
    # self.directory_path = directory_path
    self.file_lists = []
 
  def creat_xlsx(self, directory_path):
    obj = Workbook()
    if not os.path.exists(directory_path + os.sep + 'joined'):
      os.mkdir(directory_path + os.sep + 'joined')
    date = str(datetime.datetime.today())[0:10]
    obj.save(directory_path + os.sep + 'joined' + os.sep + 'joined {}.xlsx'.format(date))
 
  def get_file_list(self, directory_path):
    entry_lists = os.scandir(directory_path)
    for entry_list in entry_lists:
      if entry_list.is_file():
        if '~$' not in entry_list.path:
          self.file_lists.append(entry_list.path)
    return self.file_lists
 
  def run(self, directory_path):
    file_lists = self.get_file_list(directory_path)
    self.creat_xlsx(directory_path)
    destination_file = str(self.get_file_list(directory_path + os.sep + 'joined')[-1])
    file_lists.pop(-1)
    return file_lists, destination_file
if __name__ == "__main__":
  directory_path = r'D:\Excel目录'
  param = ParameterGenerator()
  source_file_list, destination_file = param.run(directory_path)
  copy_excel_file(source_file_list, destination_file)

输出是文件夹下新建一个'joined‘的文件夹,里面有一个合并后的文件'joined xxxx-xx-xx.xlsx',如下:

目前发现有两个需要注意的问题:

1. 需要合并的文件中不能有隐藏的表格,否则,会跳过该文件;

2. 文件名中不可以字符意外的标记,比如括号之类的。

最后,调用接口的速度有点慢,以后有机会还是看openpyxl是否可以实现一下,含格式的合并。xlwings是类似的实现,估计速度也差不多的慢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python中for后接else的语法使用

    Python中for后接else的语法使用

    这篇文章主要介绍了Python中for后接else的语法使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Numpy数组转置的实现

    Numpy数组转置的实现

    本文主要介绍了Numpy数组转置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Pandas数据清洗的维度详解

    Pandas数据清洗的维度详解

    数据清洗是数据分析的基础,关键于提高数据质量和保证分析准确性。通过数据清洗,可以减少错误、增加数据可用性、保护隐私。Pandas提供多种方法处理缺失值和重复值,还有多种方式识别和处理异常值。掌握这些技巧对提升数据处理能力极为重要
    2024-09-09
  • turtle的基础使用之python turtle递归绘图

    turtle的基础使用之python turtle递归绘图

    这篇文章主要介绍了turtle的基础使用之python turtle递归绘图,turtle是一种比较简单的第三方库,下面借助递归绘图详细描述该内容,具有一的的知识性参考价值,需要的朋友可以参考一下
    2022-02-02
  • 基于python框架Scrapy爬取自己的博客内容过程详解

    基于python框架Scrapy爬取自己的博客内容过程详解

    这篇文章主要介绍了基于python框架Scrapy爬取自己的博客内容过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 在Python中使用NLTK库实现对词干的提取的教程

    在Python中使用NLTK库实现对词干的提取的教程

    这篇文章主要介绍了在Python中使用NLTK库实现对词干的提取的教程,其中还用到了Pandas和IPython,需要的朋友可以参考下
    2015-04-04
  • windows下python安装pip图文教程

    windows下python安装pip图文教程

    这篇文章主要为大家详细介绍了windows下python安装pip图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Python学习笔记之函数的定义和作用域实例详解

    Python学习笔记之函数的定义和作用域实例详解

    这篇文章主要介绍了Python学习笔记之函数的定义和作用域,结合实例形式详细分析了Python函数的定义、参数使用、变量作用域相关问题与解决方法,需要的朋友可以参考下
    2019-08-08
  • django重新生成数据库中的某张表方法

    django重新生成数据库中的某张表方法

    今天小编就为大家分享一篇django重新生成数据库中的某张表方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python文本到语音转换库pyttsx3的安装及使用全面指南

    Python文本到语音转换库pyttsx3的安装及使用全面指南

    这篇文章主要介绍了Python的text-to-speech库pyttsx3的安装、基本用法、配置语音属性、支持的命令和功能以及高级用法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03

最新评论