大家好,我是小瑜~
在上大学的时候,小瑜是学生会的,那时候经常会让收集各种表格,这些表格是我们做好的模板,然后让各班学生进行填写的,然后我们只需要将反馈回来的附件给汇总成一个文件。这个工作看似很简单,但是我们每个月都有各种类型的表格要进行收集统计,如果每一次都是这样操作的话,那出去说自己是计算机专业的也太丢人了。
所以,小瑜今天跟大家分享一个批量合并Excel表格的方法。这个方法分为以下几个部分。
点击获取源码,提取码:qwer
01
Excel的读取和写入
这里我们用到的是Openpyxl库来对Excel进行读取和写入操作。
1. Excel的读取
首先调用openpyxl.load_workbook()函数,打开“菠萝.xlsx”文件。
wb = openpyxl.load_workbook('菠萝.xlsx')
然后获取“菠萝.xlsx”工作薄中名为“Sheet”的工作表。
sheet = wb['Sheet']
把“Sheet”工作表中A1单元格赋值给A1_cell,再利用单元格value属性,就能获得A1单元格的值。
A1_cell = 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_cell.value,B_cell.value,C_cell.value,D_cell.value,E_cell.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循环即可。
02
批量获取Excel文件
在上面我们已经学会如何读取和写入Excel文件了,但是在读取文件名的时候,我们还是需要手动输入的,如果文件很多的话,我们要一个一个的输入,这不仅麻烦,而且也不符合自动化办公的名头。所以,我们就需要想办法取得该目录下的所以Excel文件。
这里我们用的是Pathlib库。
取得该目录下所有的xlsx格式文件
path = 'K:\自动化办公'
将该目录下所有文件存储到files列表中。
files = []
p = Path(src_path)
for x in p.iterdir():
if PurePath(x).match('*.xlsx'):
files.append(x)
03
小结
批量合并Excel文件的思路是:
1. 获取该目录下所有的Excel文件,并存入一个列表中。
2. 创建好汇总的Excel文件。
3. 依次读取Excel文件,并写入汇总文件中。
4. 保存汇总文件。