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


Posted in Python onMarch 31, 2020

在工作中经常遇到需要打开许多个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',如下:

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

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

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

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

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

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

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

Python 相关文章推荐
利用python获得时间的实例说明
Mar 25 Python
Python实现二分查找算法实例
May 26 Python
Python中模块string.py详解
Mar 12 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
解决Python2.7读写文件中的中文乱码问题
Apr 12 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
Dec 24 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Python 3 判断2个字典相同
Aug 06 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
Python如何批量获取文件夹的大小并保存
Mar 31 #Python
Django使用list对单个或者多个字段求values值实例
Mar 31 #Python
django实现模板中的字符串文字和自动转义
Mar 31 #Python
Python使用graphviz画流程图过程解析
Mar 31 #Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 #Python
基于python实现计算且附带进度条代码实例
Mar 31 #Python
Django values()和value_list()的使用
Mar 31 #Python
You might like
一个显示天气预报的程序
2006/10/09 PHP
php数组去重复数据示例
2014/02/25 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
jquery cookie插件代码类
2009/05/26 Javascript
img标签中onerror用法
2009/08/13 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
python中lambda与def用法对比实例分析
2015/04/30 Python
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
幼儿园教师工作制度
2014/01/22 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
小学学校评估方案
2014/06/08 职场文书
525心理活动总结
2014/07/04 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
详解pytorch创建tensor函数
2022/03/22 Python
Spring 使用注解开发
2022/05/20 Java/Android