发布于2019-08-17 21:37 阅读(1069) 评论(0) 点赞(2) 收藏(0)
import xlrd
import xlwt
import xlsxwriter
#打开excel表格
def openexcel(fname):
fh=xlrd.open_workbook(fname)
return fh
#获取excel中所有的sheet
def getSheet(fh):
return fh.sheets()
#获取sheet数
def getSheetNum(fh):
res=0
sh=fh.sheets()
for sheet in sh:
res+=1
return res
#获取每个sheet的行数
def getNrow(fh,i):
table=fh.sheets()[i]
return table.nrows
#获取每行的元素
def getncols(fh,i):
table=fh.sheets()[i]
num=table.nrows
data=[]
for i in range(num):
rdata=table.row_values(i)
data.append(rdata)
return data
if __name__=='__main__':
#表头数组(根据具体情况选择是否使用)
excelhead=["学号","姓名","成绩"]
# 表格所在位置
filelocation="/Users/apple/Desktop/python/Excel/"
#表格的后缀即形式
fileform="xlsx"
#合并后的表格存放的位置
filedestination="/Users/apple/Desktop/python/Excel/result.xlsx"
#从文件夹中读取有多少个文件需要合并
#首先查找默认文件夹下有多少文档需要整合
import os
filearray1=os.listdir(filelocation)
print(filearray1)
fileNumber=len(filearray1)-1
filearray=[]
for i in range(0,fileNumber):
fway=filelocation+filearray1[i+1]
filearray.append(fway)
print("在"+filelocation+"中有"+str(fileNumber)+"个"+fileform+"文件")
#读取数据:rvalue第一重为文件名,第二重为sheet,第三重为行元素,第四重为每个单元格元素
rvalue = [None]*fileNumber
for k in range(fileNumber):
fh=openexcel(filearray[k])
num=getSheetNum(fh)
rvalue[k]=["sheet"]*num
for i in range(0,num):
rvalue[k][i]=getncols(fh,i)
#存储数据:四层for循环赋值,由内到外:单元格->行->文件->sheet
import xlrd
import xlwt
import xlsxwriter
res=xlsxwriter.Workbook(filedestination)
fh=openexcel(filearray[0])
for w in range(getSheetNum(fh)):
ws=res.add_worksheet("sheet"+str(w+1))
q=-1
for k in range(fileNumber):
for i in range(len(rvalue[k][w])):
q+=1
for j in range(len(rvalue[k][w][i])):
if rvalue[k][w][i][j]:
x=rvalue[k][w][i][j]
ws.write(q,j,x)
res.close()
print("合并成功,合并后的文件所在位置:"+filedestination)
作者:胡龙茶
链接:https://www.pythonheidong.com/blog/article/48474/4bddaeeb6a34603c80fa/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!