Python_pandas实现excel工作表合并功能

由于工作需要整理每周项目成员得周报,需要将很多人得excel合并到同一个文件里面。且项目成员过多,手动打开每一个文件去复制内容,就是一个大量重复性工作,且对于自己得提升毫无用处。于是产生了用代码实现excel合并得想法。
初学python,代码还不够完善,如果大家看到,请指出不足之处,谢谢!


import os,pandas as pd,re
#1.获取文件夹下要合并的文件名
dirpath = ‘文件夹地址‘
#工作表3特殊处理 需要开始下标和结束下标
begin = 231
end = 238
excel_names = os.listdir(dirpath)
#2.获取文件内容
sheet_1_merge = []
sheet_2_merge = []
sheet_3_merge = pd.DataFrame([0,0,0,0,0,0,0])
for excel_name in excel_names:
#绝对路径
excel_path = dirpath+excel_name
#dropna(axis=0, how=‘all‘)行全部为空得删除
#获取工作表1内容
sheet_1=pd.read_excel(excel_path, sheet_name=1, header=None)[2:][range(9)].dropna(axis=0, how=‘all‘)
sheet_1_merge.append(sheet_1)

获取工作表2内容

sheet_2=pd.read_excel(excel_path, sheet_name=2, header=None)[2:][range(1,7)].dropna(axis=0, how=‘all‘)
sheet_2_merge.append(sheet_2)
# 获取工作表3内容
sheet_3 = list(pd.read_excel(excel_path,sheet_name=3,header=None)[begin:end][1])
excel_name = re.findall(‘\d-(.*).xlsx‘, excel_name)[0]
sheet_3_merge.insert(1,excel_name,sheet_3)
print(sheet_1,‘\n‘,sheet_2,‘\n‘,sheet_3)

#保存合并内容
#axis=0,ignore_index=True合并行 忽略原来的下标
sheet_1_merge = pd.DataFrame(pd.concat(sheet_1_merge,axis=0,ignore_index=True))
sheet_2_merge = pd.DataFrame(pd.concat(sheet_2_merge,axis=0,ignore_index=True))
#columns主要是为了按照已有得排序,方便整理
sheet_3_merge = pd.DataFrame(sheet_3_merge,columns=[‘李1‘,‘李2,‘李3‘,‘彭4‘,‘杨5‘,‘夏6‘,...,‘杜34‘,‘叶35‘])
writer = pd.ExcelWriter(‘C:/Users/zhuozhe/Desktop/merge.xlsx‘)
sheet_1_merge.to_excel(excel_writer=writer,sheet_name=‘merge_1‘)
sheet_2_merge.to_excel(excel_writer=writer,sheet_name=‘merge_2‘)
sheet_3_merge.to_excel(excel_writer=writer,sheet_name=‘merge_3‘)
writer.save()
writer.close()



合并文件包含三个工作表:完成任务,下周计划,本周工时(包含了全年的数据,所以需要抽取)。


合并后得文件,如图:


原文地址:https://blog.51cto.com/14477836/2433364

时间: 2024-11-10 22:37:29

Python_pandas实现excel工作表合并功能的相关文章

C# 如何合并Excel工作表

合并文档能有效的简化繁杂的文档管理.在工作中,当我们遇到需要将多个Excel工作表合并为一个工作表的时候,该怎么来合并呢,本文将进一步介绍.使用工具:Free Spire.XLS for .NET.Visual Studio 2013PS: 编辑代码前需要添加引用Spire.XLS.dll到项目程序中,并添加到命名空间合并Excel表格分两种,一是合并多个工作薄中的工作表到一个工作表:二是合并一个工作簿中的多个工作表为一个工作表 一.从多个工作簿合并 using Spire.Xls; names

把多个工作簿的第一个工作表合并到一个工作簿的多个工作表

功能:把多个工作簿的第一个工作表合并到一个工作簿的多个工作表,新工作表的名称等于原工作簿的名称 Sub Books2Sheets() '定义对话框变量 Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) '新建一个工作簿 Dim newwb As Workbook Set newwb = Workbooks.Add With fd If .Show = -1 Then '定义单个文件变量 Di

excel工作表密码破解方法

在日常工作中,大家有时会遇到过这样的情况:使用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护密码容易忘记,这该怎么办?有时您从网上下载的Excel格式的小程序,您想修改,但是作者加了工作表保护密码,怎么办?您只要按照以下步骤操作,Excel工作表保护密码瞬间(稍微有点夸张)即破! 步骤阅读 百度经验:jingyan.baidu.com 工具/原料 待破解的Excel工作表

vba实现excel多表合并

Excel多表合并之vba实现 需求 保留列名,复制每一个excel里的数据,合并到一个excel 操作步骤 将要合并的文件放在同一文件夹下,复制过来就好(ps:最好不要直接操作原数据文件,避免操作失败,数据丢失) 在这个目录下创建一个“合并.xlsx” 双击打开“合并.xlsx” 同时按 ALT + F11 出现下图,按图中文字操作即可完成合并 完成 附录代码 Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Work

C# 按指定范围拆分Excel工作表

前面的文章讲述了如何来合并Excel工作表,那本文将接着上篇文章,介绍如何按工作表的指定范围来拆分.原Excel文档如下:C# using Spire.Xls; namespace splitworksheet { class Program { static void Main(string[] args) { //创建一个Workbook类对象,并加载Excel工作表,并获取第一张工作表 Workbook bookOriginal = new Workbook(); bookOriginal

Excel工作表之SQL查询方法

[转载]Excel工作表之SQL查询方法 来源:http://blog.csdn.net/zhanghongju/article/details/8428458 近期在单位上做业务数据分析,发现还是Excel用的直接,筛选.求和.分类等等也是不亦乐乎,但是发现一些函数的效率与SQL还是有着较大差距,甚至是天壤之别,故作文一篇,提供Excel中的SQL查询使用方式. 查询的工作表可以是当前工作簿中的,也可以是其他工作簿中的.例如,图1所示的“网站数据.xlsx”工作簿中,Sheet1表格存储的是网

C#将一个excel工作表根据指定范围拆分为多个excel文件

C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其他方法如VBA及Visual Studio语言(如C#.VB.NET等)编程的方式.VBA我不是很熟悉,因此这篇文章写的是如何使用C# 将一个excel工作表根据指定的范围拆分为多个excel文件. 下面是一个excel人力资源信息表,里面含有三个部门及一些员工信息: 接下来就开始拆分这个excel

EXCEL工作表保护密码破解方式

Excel工作表密码保护的解除方法 Excel弹出"您试图更改的单元格或图表受保护,因而是只读的.若要修改受保护单元格或图表,请先使用'撤消工作表保护'命令(在'审阅'选项卡的'更改'组中)来取消保护.可能会提示您输入密码. 出现这种情况,应该怎么解决呢?经过研究,找到了两种破解Excel工作表保护码的方法. 一.VBA宏代码破解法: 第一步:打开该文件 第二步:按Alt+F11,进入VBA编辑界面: 第三步:插入一个Module: 第四步:在右边Module的空白编辑区域,复制粘贴下面的所有内

破解Excel工作表密码

1.在VBA中使用以下方法,即可破解Excel工作表密码. (1)在Excel文档中,选择"视图"选项卡,选择"宏",录制宏,然后停止录制. (2)然后,按Alt + f11,调出VBA界面,发现有一个模块1,下面就是刚才录制宏的方法,把下面的代码Copy进去,替换掉,最后点工具栏的绿色三角形,执行方法,即可破解Excel工作表的密码. Public Sub AllInternalPasswords()' Breaks worksheet and workbook