300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python对文件夹内所有Excel工作簿完成先合并后转置

Python对文件夹内所有Excel工作簿完成先合并后转置

时间:2018-12-16 20:22:36

相关推荐

Python对文件夹内所有Excel工作簿完成先合并后转置

目标:将从NC系统导出的表格进行转置。

原工作簿:(每个工作表的行数需相等)

目标工作簿:

步骤①:将单个工作簿内的所有工作表内容合并(简单横向合并);

步骤②:将合并后的工作簿内容进行转置;

步骤③:将对单个工作簿的代码推广为文件夹内所有工作簿。

代码如下:

import xlrdimport pandas as pdfrom pandas import DataFramefrom openpyxl import load_workbook#不要格式import pandas.io.formats.excelpd.io.formats.excel.ExcelFormatter.header_style = None#忽略警告级别的提示import warningswarnings.filterwarnings('ignore')from pathlib import Pathfolder_path = Path(r'D:\2306TB')file_list = folder_path.glob('*.xls*') # 获取文件夹下所有工作簿的文件路径for j in file_list: # 遍历已获取的文件路径excel_name = j #选取工作簿wb = xlrd.open_workbook(excel_name) #打开工作簿sheets = wb.sheet_names() #获取工作簿下的所有工作表名称alldata = DataFrame()#空表for i in range(len(sheets)):df = pd.read_excel(excel_name, sheet_name=i)alldata = pd.concat([alldata,df],axis=1) #合并各工作表,concat()括号内哪个在前合并时哪个在前alldata=alldata.T #数据转置#将结果写入源文件,并不覆盖源文件内容writer = pd.ExcelWriter(excel_name,engine='openpyxl',mode='a')#ExcelWriter的参数mode='a',模式改为新增,非写入('w')book = load_workbook(excel_name)alldata.to_excel(excel_writer=writer,sheet_name="转置",header=False)writer.close()book = load_workbook(excel_name)book.move_sheet("转置",-len(sheets))book.save(excel_name)book.close()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。