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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
Python的Django框架中的数据库配置指南
Jul 17 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
node.js获取参数的常用方法(总结)
May 29 Python
Python模块文件结构代码详解
Feb 03 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
浅谈django orm 优化
Aug 18 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
Python实现元素等待代码实例
Nov 11 Python
pycharm 激活码及使用方式的详细教程
May 12 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 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 socket(fsockopen)的应用实例分析
2013/06/02 PHP
yii分页组件用法实例分析
2015/12/28 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
2014/05/06 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
2016/06/07 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
Python实现从url中提取域名的几种方法
2014/09/26 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Python3.x中自定义比较函数
2015/04/24 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
is_file和file_exists效率比较
2021/03/14 PHP
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
好的自荐信的要求
2013/10/30 职场文书
地陪导游欢迎词
2015/01/26 职场文书
介绍信格式
2015/01/30 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS
SQL Server内存机制浅探
2022/04/06 SQL Server