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 时间处理datetime实例
Sep 06 Python
python基础教程之循环介绍
Aug 29 Python
TensorFlow实现简单卷积神经网络
May 24 Python
Python查找第n个子串的技巧分享
Jun 27 Python
Python安装Flask环境及简单应用示例
May 03 Python
python实现动态数组的示例代码
Jul 15 Python
如何搭建pytorch环境的方法步骤
May 06 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
Python字符串三种格式化输出
Sep 17 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 Python
Pytorch 实现变量类型转换
May 17 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
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
比较完整的微信开发php代码
2016/08/02 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
JS判断数组那点事
2017/10/10 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
Python实现上下文管理器的方法
2020/08/07 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
初中三年学生的学习自我评价
2013/11/13 职场文书
电子商务个人自荐信
2013/12/12 职场文书
战友聚会策划方案
2014/06/13 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
安全生产月标语
2014/10/07 职场文书
村党建工作汇报材料
2014/11/02 职场文书
中学生综合素质自我评价
2015/03/06 职场文书