自动化办公:教你如何快速合并Excel文件

Posted yk 坤帝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化办公:教你如何快速合并Excel文件相关的知识,希望对你有一定的参考价值。

大家好,今天更新一篇关与自动化办公的文章。

我们在日常办公中经常会处理各种表格,进行问卷调查等。这些表格可以是我们做好的模板,可以是实践调研,我们需要对填写的表格进行汇总总结,同时需要将反馈回来的附件给汇总结成一个文件。这个工作看似很简单,但是我们每个月每天都有各种类型的表格要进行收集统计,

如果每次都是这样一个个文件一个个文件进行操作的话,那样也太浪费时间了,而且效率更是非常低下,几百个表格还好说,当文件数量到达几千,几万的时候,我们就要去想想简单的方法了,今天在这里让大家,解放双手,解放大脑,不再重复造轮子,告别996.

所以,今天跟大家分享一个批量合并Excel表格(csv文件也是同理,主要以excel表格为例)的方法。这个方法分为以下几个部分。

一 、Excel文件(csv文件)的读取和写入

这里我们主要用到的是Openpyxl库,来对Excel进行读取和写入操作。

如果没安装的花可以直接

pip install Openpyxl

进行安装

如果pip无法安装,可以看我以前教的第三方库快速安装的方法(清华镜像,豆瓣镜像安装等),这里不多赘述。

1.Excel的读取

首先调用openpyxl.load_workbook()函数,打开“调研报告.xlsx”文件。

import openpyxl
wb = openpyxl.load_workbook('调研报告.xlsx')

然后获取“调研报告.xlsx”工作薄中名为“sheet1”的工作表。

sheet = wb['sheet1']

把“sheet1”工作表中A1单元格赋值给A1,再利用单元格value属性,就能获得A1单元格的值。

A1 = sheet['A1']
A1_value = A1_cell.value

以上就是Excel文件的读取啦!其他的单元格的数据获取同上,如想批量获取,只需加上一个for循环即可。

2.Excel的写入

利用openpyxl.Workbook()函数创建新的workbook(工作薄)对象,就是创建新的空的Excel文件。

wb_1 = openpyxl.Workbook()

创建完新的工作薄后,还得获取工作表。不然程序会无所适从,不知道要把内容写入哪张工作表里。

sheet_1 = wb_1.active

如果我们想往工作表里写入一行内容的话,就得用到append函数。然后如果想批量插入的话,我们加上一个for循环就可以了。

a = [A.value,B.value,C.value,D_cell.value,E.value]
sheet_1.append(a)

往单元格里写入内容只要定位到具体的单元格,如A1(根据Excel的坐标,A1代表第一列第一行相交的单元格),然后给这个单元格赋值即可。它可以方便我们输入文件的表头。

sheet_1[‘A1’] = ’ ’
sheet_1[‘B1’] = ’ ’
sheet_1[‘C1’] = ’ ’
sheet_1[‘D1’] = ’ ’
sheet_1[‘E1’] = ’ ’
#写入你的表头名称

以上就是Excel文件的写入啦!如想批量写入,只需加上一个for循环即可。

二、批量获取Excel文件

在上面我们已经学会如何读取和写入Excel文件了,但是在读取文件名的时候,我们还是需要手动输入的,如果文件很多的话,我们要一个一个的输入,这不仅麻烦,而且也不符合自动化办公的名头。所以,我们就需要想办法取得该目录下的所以Excel文件。

这里我们用的是os库。

如果没安装的花可以直接

pip install os

进行安装

如果pip无法安装,可以看我以前教的第三方库快速安装的方法(清华镜像,豆瓣镜像安装等),这里不多赘述。
取得该目录下所有的xlsx格式文件

path = ‘C:\\自动化办公’

将该目录下所有文件存储到files列表中。

file_list = []
path = 'C:\\自动化办公'
for i in os.listdir(path):
   if 'xlsx' in i.split('.'):
       files.append(i)

示例:

import os
#os & sys 模块使用\\os_mod.py
print(os.getcwd())

print(os.listdir())

print(os.listdir('os & sys 模块使用'))
for i in os.listdir('os & sys 模块使用'):
    print(i)
    if 'py' in i.split('.'):
        print(os.listdir('os & sys 模块使用'))

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、总体思路

批量合并Excel文件的思路是:

1. 获取该目录下所有的Excel文件,并存入一个列表中。

2. 创建新的Excel文件(汇总文件)。

3. 依次读取Excel文件,并写入汇总文件中。

4. 保存汇总文件。

自动化办公练习代码:


个人公众号 yk坤帝
后台回复 自动化办公excel合并 获取源代码

import os
#os & sys 模块使用\\os_mod.py
print(os.getcwd())

print(os.listdir())

print(os.listdir('os & sys 模块使用'))
for i in os.listdir('os & sys 模块使用'):
    print(i)
    if 'py' in i.split('.'):
        print(os.listdir('os & sys 模块使用'))
# os.remove()
# os.removedirs()
# print(os.path.isfile('a'))
# print(os.path.isfile('os & sys 模块使用/os_mod.py'))

# print(os.path.exists('os & sys 模块使用/os_mod.py'))
# print(os.path.exists('os & sys 模块使用'))

# print(os.path.dirname('os & sys 模块使用/'))

# print(os.path.abspath('os_mod.py'))

# print('2步操作!!!!!!!')

# print(os.path.basename('os_mod.py'))

# print(os.system('ipconfig'))

# #print(os.remove('旧的文件名','新的文件名'))

# # os.mkdir()
# # os.makedirs()

# print(os.stat('os & sys 模块使用/os_mod.py'))
# print(os.path.getsize('os & sys 模块使用/os_mod.py'))

# import sys
# print(sys.path)
# print(sys.argv)

个人公众号 yk坤帝
后台回复 自动化办公excel合并 获取源代码

以上是关于自动化办公:教你如何快速合并Excel文件的主要内容,如果未能解决你的问题,请参考以下文章

办公自动化18-将多个excel表中的多个sheet合并到一个excel中的一个sheet

办公自动化2:使用Python合并不同文件夹中的多个Excel文件

办公自动化17-将一个excel里的多个sheet合并为1个sheet

1行Python代码,合并100个Excel文件,竟然这么方便?!

如何快速的?合并多个excel文件到一个excel里面?

怎么样才能快速把Excel的表格转为Word呢?