PYTHON 多个EXCEL的同名SHEET合并到一个SHEET

sinat_25869705 2020-11-26 09:30:06
财务工作,怎么样把多个EXCEL的多张同名SHEET的内容合并到另一个EXCEL的一个SHEET中
...全文
1075 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_25869705 2020-12-02
  • 打赏
  • 举报
回复
引用 14 楼 考古学家lx 的回复:
用这个库读写,不是修改某一个方法
import pandas as pd import os work=xlwt.Workbook('F:\PyCharm\python\EXCLLSEARCH\EXCELTEST.xlsx') #建立一个文件 path='F:\PyCharm\python\EXCLLSEARCH\yh2020' #目录(放Excel表格的目录) os.chdir(path) file_list=os.listdir(path) data_lst = [] for file in file_list: #循环遍历列出所有文件名称 file_name = os.path.join(path,file) #路径+文件名 workbook=xlrd.open_workbook(file_name) #打开第一个文件 sheet_name=workbook.sheet_names() #获取第一个文件的sheet名称 for file_1 in sheet_name: #循环遍历每个sheet val=[] if (file_1 not in data_lst): sheet=work.add_sheet(file_1,cell_overwrite_ok=True) #新建一个sheet data_lst.append(file_1) table=workbook.sheet_by_name(file_1) #以名字为索引 rows= table.nrows #获取sheet行数 clos=table.ncols work.save('F:\PyCharm\python\EXCLLSEARCH\EXCELTEST.xlsx') '''''' # 将要汇总的sheet名列入列表中 #sheetname = ['一月份版本细算', '二月份版本细算', '三月份版本细算', '四月份版本细算', '五月份版本细算', '六月份版本细算', '七月份版本细算'] with pd.ExcelWriter('../EXCELTEST.xlsx') as writer: for sheet in data_lst: df = pd.concat([pd.read_excel(file, sheet_name=sheet,skiprows=[0],index_col=0) for file in os.listdir() if file.endswith('.xls')]) df.to_excel(writer, sheet_name=sheet) 你看下这个代码,好像需要每张表格都需要一样的SHEET,只要有一个EXCEL没有包含就会提错误
  • 打赏
  • 举报
回复
pandas.read_csv()
sinat_25869705 2020-12-01
  • 打赏
  • 举报
回复
引用 10 楼 sinat_25869705 的回复:
[quote=引用 9 楼 考古学家lx 的回复:]SHEET同名 跟读文件没啥关系 pandas读sheet是根据下标读的,与名字无关
work=xlwt.Workbook('F:\PyCharm\python\EXCLLSEARCH\EXCELTEST.xlsx') #建立一个文件 path='F:\PyCharm\python\EXCLLSEARCH\WJJ' #目录(放Excel表格的目录) file_list=os.listdir(path) data_lst = [] for file in file_list: #循环遍历列出所有文件名称 file_name = os.path.join(path,file) #路径+文件名 workbook=xlrd.open_workbook(file_name) #打开第一个文件 sheet_name=workbook.sheet_names() #获取第一个文件的sheet名称 for file_1 in sheet_name: #循环遍历每个sheet val=[] if (file_1 not in data_lst): sheet=work.add_sheet(file_1,cell_overwrite_ok=True) #新建一个sheet data_lst.append(file_1) table=workbook.sheet_by_name(file_1) #以名字为索引 rows= table.nrows #获取sheet行数 clos=table.ncols #获取sheet列数目 for i in range(rows): #循环遍历没一行 val.append(table.row_values(i)) #获取没一行的值 for x in range(len(val)): for y in range(len(val[x])): sheet.write(x,y,val[x][y]) work.save('F:\PyCharm\python\EXCLLSEARCH\EXCELTEST.xlsx')[/quote] 这样发现重名sheet就会弹出错误,而且不会追加内容只能覆盖
sinat_25869705 2020-12-01
  • 打赏
  • 举报
回复
引用 9 楼 考古学家lx 的回复:
SHEET同名 跟读文件没啥关系 pandas读sheet是根据下标读的,与名字无关
work=xlwt.Workbook('F:\PyCharm\python\EXCLLSEARCH\EXCELTEST.xlsx') #建立一个文件 path='F:\PyCharm\python\EXCLLSEARCH\WJJ' #目录(放Excel表格的目录) file_list=os.listdir(path) data_lst = [] for file in file_list: #循环遍历列出所有文件名称 file_name = os.path.join(path,file) #路径+文件名 workbook=xlrd.open_workbook(file_name) #打开第一个文件 sheet_name=workbook.sheet_names() #获取第一个文件的sheet名称 for file_1 in sheet_name: #循环遍历每个sheet val=[] if (file_1 not in data_lst): sheet=work.add_sheet(file_1,cell_overwrite_ok=True) #新建一个sheet data_lst.append(file_1) table=workbook.sheet_by_name(file_1) #以名字为索引 rows= table.nrows #获取sheet行数 clos=table.ncols #获取sheet列数目 for i in range(rows): #循环遍历没一行 val.append(table.row_values(i)) #获取没一行的值 for x in range(len(val)): for y in range(len(val[x])): sheet.write(x,y,val[x][y]) work.save('F:\PyCharm\python\EXCLLSEARCH\EXCELTEST.xlsx')
  • 打赏
  • 举报
回复
用这个库读写,不是修改某一个方法
sinat_25869705 2020-12-01
  • 打赏
  • 举报
回复
引用 12 楼 考古学家lx 的回复:
pandas.read_csv()
代码哪里修改成pandas.read_csv()
  • 打赏
  • 举报
回复
SHEET同名 跟读文件没啥关系 pandas读sheet是根据下标读的,与名字无关
sinat_25869705 2020-11-30
  • 打赏
  • 举报
回复
引用 7 楼 考古学家lx 的回复:
pandas 把sheetname全部读出来 合并处理后, 然后重新save到1个里面就可以了
如果是SHEET同名怎么办
  • 打赏
  • 举报
回复
pandas 把sheetname全部读出来 合并处理后, 然后重新save到1个里面就可以了
阿麦 2020-11-30
  • 打赏
  • 举报
回复
“合并在一起”是指什么?同行列数值相加?还是后面的数据行添加到前面的数据行?或者是新的工作表(怎样命名呢,工作表不允许重名)? 要先明确什么叫“合并在一起”哦
引用 3 楼 sinat_25869705 的回复:
就是想把不同的EXCEL的同名SHEET内容合并在一起,生成另一个EXCEL的sheet,有没有代码看下
欢乐的小猪 2020-11-26
  • 打赏
  • 举报
回复
分三步: 1.打开多个excel 2.处理你的逻辑 3.保存
sinat_25869705 2020-11-26
  • 打赏
  • 举报
回复
引用 1 楼 欢乐的小猪 的回复:
分三步: 1.打开多个excel 2.处理你的逻辑 3.保存
就是想把不同的EXCEL的同名SHEET内容合并在一起,生成另一个EXCEL的sheet,有没有代码看下
sinat_25869705 2020-11-26
  • 打赏
  • 举报
回复
引用 2 楼 阿麦 的回复:
用 openpyxl 打开最终合并的表 逐个打开 Excel 表: 如果同名表存在: 处理合并 关闭Excel表 保存最终合并的表 关闭最终合并的表 因为你没交代清楚“合并”是什么,是添加行,还是相同单元格数值相加等等,所以没办法明确代码
就是想把不同的EXCEL的同名SHEET内容合并在一起,生成另一个EXCEL的sheet,有没有代码看下
sinat_25869705 2020-11-26
  • 打赏
  • 举报
回复
就是想把不同的EXCEL的同名SHEET内容合并在一起,生成另一个EXCEL的sheet,有没有代码看下
阿麦 2020-11-26
  • 打赏
  • 举报
回复
用 openpyxl 打开最终合并的表 逐个打开 Excel 表: 如果同名表存在: 处理合并 关闭Excel表 保存最终合并的表 关闭最终合并的表 因为你没交代清楚“合并”是什么,是添加行,还是相同单元格数值相加等等,所以没办法明确代码

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧