使用Python的实现Excel表格数据汇总

#导入模块xlrd:数据读取,xlwt:数据写入
import xlrd,xlwt 
#导入系统模块,为了进行文件路径查找
import os 

#目标文件与路径
targetPath=os.path.join(os.getcwd(),'05.表格合并/输出.xls')
# 目标文件的写入索引,目标文件从第几行开始写入数据
targetRowNum=5

#要合并文件路径 
allPath=os.path.join(os.getcwd(),'05.表格合并/原始')

#获取文件夹下所有EXCEL名 
xlsx_names = [x for x in os.listdir(allPath) if x.endswith(".xls")] 

#设置每个文件下共有几个活动Sheet表
workSheet=1

#往目标文件中写入数据
target_file=xlwt.Workbook(encoding='utf-8')
#目标文件创建新的Sheet,这里需要说明,试用方法只能创建新的sheet,不能用原有的sheet表通过读取sheet名称进行写入
target_sheet = target_file.add_sheet('合并')


#循环读取每个文件
for single_file in xlsx_names:
	#通过操作系统文件目录的合并,查找到需要读取文件的路径+名称
    filePath =os.path.join(allPath,single_file)

    #打开文件夹下
    first_file_fh=xlrd.open_workbook(filePath)
    #循环遍历每个活动的工作Sheet表格
    for tableSheet in range(workSheet):
        first_table = first_file_fh.sheets()[tableSheet]
        #获取表格的最大行数
        first_table_maxrow=first_table.nrows
        # 从第几行开始进行读取数据
        for rowNum in range(4,first_table_maxrow):   
        	#读取数据最终结果是一个数组,可以对数组进行处理
            rowContent = first_table.row_values(rowNum)
            #这个根据数据格式的不同,测试数据最后有合并行,这些数据不做处理,所以做了判断
            if rowContent[3]=='' and rowContent[4]=='':
                break
            #根据数组的索引和值,将数据进行春促
            for (info_index,info_value) in enumerate(rowContent):
            	#每条数组存储一行,write(行,列,值)
                target_sheet.write(targetRowNum,info_index,info_value)                
            # 让目标文件行数添加  
            targetRowNum+=1
    #每次执行完一个文件释放资源
    first_file_fh.release_resources()
    #删除每次执行完后的文件对象
    del first_file_fh

#最终将合并文件进行保存
target_file.save(targetPath)



你可能感兴趣的:(Python开发,python,数据处理,表格合并)