# 下面这些变量需要您根据自己的具体情况选择title = ["编号","项目负责人","项目","报销事由","报销项内容*","费用合计","预约报销日期","报销人","结算信息"]# 在哪里搜索多个表格# filelocation = "E:\\totally\\FinancePDF"filelocation = "E:\\totally\\FinancePDF"# 当前文件夹下搜索的文件名后缀fileform = ".pdf.xlsx"# 将合并后的表格存放到的位置filedestination = "E:\\totally\\"# 合并后的表格命名为filefile = "Finance_All" # 首先查找默认文件夹下有多少文档需要整合import globimport osfrom numpy import * filearray = []address_Excel="E:\\totally\\FinancePDF"f_list = os.listdir(address_Excel)for fileNAME in f_list: # os.path.splitext():分离文件名与扩展名 if os.path.splitext(fileNAME)[1] == ‘.xlsx‘: filearray.append(fileNAME )# 以上是从pythonscripts文件夹下读取所有excel表格,并将所有的名字存储到列表filearrayprint("在默认文件夹下有%d个文档" % len(filearray))ge = len(filearray)matrix = [None] * ge# 实现读写数据 # 下面是将所有文件读数据到三维列表cell[][][]中(不包含表头)import xlrd for i in range(ge): fname = filearray[i] bk = xlrd.open_workbook(fname) try: sh = bk.sheet_by_name("Sheet") except: print("在文件%s中没有找到sheet,读取文件数据失败" % fname) nrows = sh.nrows matrix[i] = [0] * (nrows - 1) ncols = sh.ncols for m in range(nrows - 1): matrix[i][m] = ["0"] * ncols for j in range(1, nrows): for k in range(0, ncols): matrix[i][j - 1][k] = sh.cell(j, k).value # 下面是写数据到新的表格test.xlsimport xlwt# 下面是把表头写上filename = xlwt.Workbook()sheet = filename.add_sheet("hel") for i in range(0, len(title)): if title[i][-1] == "*": crs = 1 sheet .write_merge(0,0,i,crs+i, title[i]) # sheet.write(0, i, title[i][-2]) elif i>=4: merge_leng=i+1 sheet.write(0, merge_leng, title[i]) else: sheet.write(0, i, title[i]) # 求和前面的文件一共写了多少行zh = 1for i in range(ge): for j in range(len(matrix[i])): for k in range(len(matrix[i][j])): sheet.write(zh, k, matrix[i][j][k]) zh = zh + 1print("我已经将%d个文件合并成1个文件,并命名为%s.xls." % (ge, file))filename.save(filedestination + file + ".xls")
原文地址:https://www.cnblogs.com/setname/p/8417759.html
时间: 2024-10-10 08:51:06