# 下面這些變量需要您根據自己的具體情況選擇
title = ["編號","項目負責人","項目","報銷事由","報銷項內容*","費用合計","預約報銷日期","報銷人","結算信息"]
# 在哪里搜索多個表格
# filelocation = "E:\\totally\\FinancePDF"
filelocation = "E:\\totally\\FinancePDF"
# 當前文件夾下搜索的文件名后綴
fileform = ".pdf.xlsx"
# 將合並后的表格存放到的位置
filedestination = "E:\\totally\\"
# 合並后的表格命名為file
file = "Finance_All"
# 首先查找默認文件夾下有多少文檔需要整合
import glob
import os
from 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表格,並將所有的名字存儲到列表filearray
print("在默認文件夾下有%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.xls
import 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 = 1
for 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 + 1
print("我已經將%d個文件合並成1個文件,並命名為%s.xls." % (ge, file))
filename.save(filedestination + file + ".xls")