平时生活里会不会遇到这种情况: 收到了好几个上交的表格,但是你需要整合成一个总表再次上交。 如下: 顺带一提,这里的测试表格也是我自己用python批量生成的,姓名是全国最多重名前十。 你想要合成为这样: 但是一个一个复制过来确实比较麻烦,这里想到利用python编写一个程序。
程序如下:
import xlrd import xlwt import os path = os.getcwd()#获取当前目录 os.chdir(path) allfiles = os.listdir(path) for i in allfiles: if os.path.splitext(i)[1] !='.xls': if os.path.splitext(i)[1] !='.xlsx': allfiles.remove(i) #把当前目录下,所有以xls,xlsx结尾的文件录入列表 print(allfiles) result = xlwt.Workbook(encoding='utf-8') sheeta = result.add_sheet('result') for i in range(len(allfiles)): f = xlrd.open_workbook(allfiles[i]) psheet = f.sheets()[0] t = i rows = psheet.row_values(1) print(rows) l = len(rows) for j in range(l): if i == 0: sheeta.write(0, j, psheet.row_values(0)[j]) sheeta.write(1, j, psheet.row_values(1)[j]) else: sheeta.write(t + 1, j, psheet.row_values(1)[j]) result.save('result.xls') #保存文件可以看到这里用到两个和excel有关的库,一个是xlrd,一个是xlwt。具体用法这里就按下不表了。
这里是考虑到很多人的电脑上没有python环境,而且很多人可能在装库这一块不太会装。
这里首先要安装好pyinstaller。
pip install pyinstaller然后:
pyinstaller -p E:\anaconda3\pkgs\xlrd-1.2.0-py37_0\Lib\site-packages -p E:\anaconda3\pkgs\xlwt-1.3.0-py37_0\Lib\site-packages -F mergeexcl.py这里其实很关键,因为导入了第三方库,xlrd和xlwt,所以必须要利用 -p …\site-packages 加入你两个库所在的文件夹,才可以封装成功。
要把程序和表格放在同一个文件夹 双击运行 打开即是合并结果。
1.生成完result.xls后,不要再重复运行mergeexcel.exe程序,否则程序会把生成好的result.xls也当做需要合成的表格再次合成。 2.文件夹中尽量不要有别的文件。 3.出错了是环境的问题,不是我的问题…