python处理xls文档-合并excel,处理单元格

news/2024/7/21 7:11:59 标签: excel, python

工作中要求收集每个人的信息并合并到一个excel文件里。

发出来的模板表格都是xls格式的,所以收集到的模板也都是xls格式的。

简简单单的工具,没有做什么优化和容错处理,仅仅实现了我要的功能而已。

思路:选择文件夹,合并文件夹里所有文件到新文件里,删除不需要的行。

主函数包括2个函数:合并文件,删除行

1.通过合并文件的函数MergeXlsFile获取dirPath

2.传给删除行的函数del_rows

python">if __name__ == "__main__":
    dirPath=MergeXlsFile.MergeFile()
    del_rows.delRows(dirPath)

合并文件MergeXlsFile函数:

1.通过对话框选择文件夹

2.创建新文件保存合并后的结果

3.遍历文件夹,逐个读取文件

4.追加到新文件里并保存

5.返回dirPath供删除行函数使用

python"># 功能:选择文件夹路径,合并文件夹下所有xls文件

import tkinter
from tkinter import filedialog
import os
import openpyxl
import pandas

def MergeFile():
    # 创建窗口,初始化
    root = tkinter.Tk()
    # 打开文件夹选择的对话框
    root.withdraw()

    # 弹出对话框选择文件夹
    dirPath = filedialog.askdirectory()

    # 创建新文件用于保存合并后的结果
    wb = openpyxl.Workbook()

    # 合并到新exce第一个sheet页(活动页)
    ws = wb.active

    # 遍历文件夹,读取文件,追加到新文件中
    for file in os.listdir(dirPath):
        dfs = pandas.read_excel(dirPath + "\\" + file, sheet_name=0)

        # dataframe转化为列表
        for df in dfs.values.tolist():
            ws.append(df)
    wb.save(dirPath + r"\汇总.xlsx")
    return dirPath

删除行del_rows函数:

1.通过传递的dirPath找到刚刚合并后的表格,【汇总】表

2.找到【汇总】你需要操作的那个sheet页

3.遍历这个【汇总】表,删除空白行以及原表格中的表头那行

4.【汇总】表保存

python"># 功能:删除多余的行(空白行和一些不需要的行)

import openpyxl

def delRows(dirPath):
    # 获取一个Sheet表,找到最大行
    wb=openpyxl.load_workbook(dirPath+r"\汇总.xlsx")
    sheet=wb["Sheet"]
    rows=sheet.max_row

    # 遍历所有行,找到不符合要求的,删除改行并保存
    for row in range(rows,0,-1):
        data1=sheet.cell(row,1)

        if data1.value ==None or data1.value=="姓名":
            sheet.delete_rows(row)

    wb.save(dirPath+r"\汇总.xlsx")


http://www.niftyadmin.cn/n/265546.html

相关文章

Waiting for table metadata lock

文章目录 出现的问题解决方案1优化查询语句2分析并杀死占用锁的进程 出现的问题 mysql 卡住了,查看进程 SHOW PROCESSLIST 看到提示信息Waiting for table metadata lock 当 MySQL 数据库中的一个事务持有表级锁时(例如,使用 ALTER TABLE 命…

法发〔2016〕22号《关于办理刑事案件收集提取和审查判断电子数据若干问题的规定》

文号:法发〔2016〕22号 全部标题:最高人民法院最高人民检察院公安部印发《关于办理刑事案件收集提取和审查判断电子数据若干问题的规定》的通知 发文时间:2016年9月9日 来源:最高人民法院网 原文链接:权威发布 - 中…

享受简单上传体验:将Maven仓库迁移到GitHub

前言:我为什么放弃了Maven Central 之前我写过一篇《Android手把手,发布开源组件至 MavenCentral仓库》,文中详细介绍了如何发布组件到Maven Central中供所有开发者共用。但是最近使用下来,发现Sonatype JIRA 的Maven Center上传…

原型图都可以用什么软件做?分享这9款给你

设计师在进行原型设计师时,会使用原型图软件,从产生想法到向开发人员提交项目。无论是构建基本线框还是功能齐全的原型,原型图软件都可以为你节省大量的时间和精力。 如果你是这个领域的新手或者想更新你的原型图软件包,请快速看…

RedHat8配置本地YUM源

目录: RedHat8配置本地YUM源1、创建规则文件2、创建挂载点3、挂载ISO镜像(1).将iso镜像连接到虚拟机再进行挂载a.将ISO镜像连接虚拟机b.挂载镜像到挂载点c.使用df -h查看当前系统设备挂载情况 (2)将iso镜像上传至服务器再进行挂载a.将ISO镜像通过ftp工具上传b.挂载镜…

【hello Linux】进程间通信——匿名管道

目录 前言: 总结下上述的内容: 1. 进程间通信目的 2. 进程间通信的分类 1. 匿名管道 2. 匿名管道的使用 1. 匿名管道的创建 2. 使用匿名管道进行父子间通信 Linux🌷 前言: 进程具有独立性,拥有独立的数据、代码及其他…

H5中将图片的绝对路径转换成文件对象

一、file对象 在HTML5中,FileList对象表示用户选择的文件列表。 通过添加multipe属性,file控件内允许一次选择多个文件。控件内的每一个用户选择的文件都是一个file对象,而FileList对象则是file对象的列表,代表用户选择的所有文…

String类的学习笔记(上):介绍String类及其常用方法的使用

本文介绍了Java中用来描述操作字符串的String类,和其一些常用的基本操作方法,字符串的创建输出,字符串对象的比较,字符串查找,字符串的转化,字符串的替换,字符串拆分,字符串截取,和大小写转换,去除左右空格,子字符串包含,学会使用这些方法,能更方便的使用操作字符串~ String类的…