教你怎么用Python处理excel实现自动化办公
作者:涛涛真酷 发布时间:2023-11-05 02:19:50
标签:Python,excel,自动化办公
一、介绍
实现的是把某个文件夹下的所有文件名提取出来,放入一个列表,在与excel中的某列进行对比,如果一致的话,对另一列进行操作,比如我们在统计人员活动情况的时候,对参加的人需要进行记录。
二、步骤
代统计名单
比如下面这个目录是参与活动的人员名单,每个文件夹为每个人参与活动的相关资料,有些目录是很多人一起参与一个活动,这个时候我要把文件遍历,把名字输入到一个列表中。
相关代码如下
# 保存指定目录下文件名到列表
def Save_name(dirPath):
filePath = dirPath
names = os.listdir(filePath)
return names
# 处理文件名
def progress_name(name):
result = []
for str in name:
str_list = str.split()
for i in str_list:
result.append(i)
return result
代处理的excel如下
处理excel我用到的是pandas库,相关代码如下:
# 处理excel表
def progress_excel(name, filepath, col):
data1 = pd.DataFrame(pd.read_excel(filepath)) # 这个会直接默认读取到这个Excel的第一个表单
data = data1.head(70) # 默认读取前5行的数据
num = data.index
for i in name:
for j in num:
if data['姓名'].loc[j] == i:
data[col].loc[j] = 0.5
print(data)
DataFrame(data).to_excel('活动记录.xlsx', sheet_name='Sheet1', index=False, header=True)
代码运行后如下
可以看到,成功处理了我需要他处理的列,并进行时长的统计
三、完整代码
import os
import pandas as pd
from pandas import DataFrame
# 保存指定目录下文件名到列表
def Save_name(dirPath):
filePath = dirPath
names = os.listdir(filePath)
return names
# 处理文件名
def progress_name(name):
result = []
for str in name:
str_list = str.split()
for i in str_list:
result.append(i)
return result
# 处理excel表
def progress_excel(name, filepath, col):
data1 = pd.DataFrame(pd.read_excel(filepath)) # 这个会直接默认读取到这个Excel的第一个表单
data = data1.head(70) # 默认读取前5行的数据
num = data.index
for i in name:
for j in num:
if data['姓名'].loc[j] == i:
data[col].loc[j] = 0.5
print(data)
DataFrame(data).to_excel('活动记录.xlsx', sheet_name='Sheet1', index=False, header=True)
if __name__ == '__main__':
path = 'F:\\党支部\\环境美化活动' # 要提取文件夹名的路径
names = Save_name(path)
filenames = progress_name(names)
# print(filenames)
# print(len(filenames))
excelname = 'F:\\党支部\\活动记录.xlsx' # 要处理的表
col = '校园环境美化活动(0.5h)' # 要处理的列
progress_excel(filenames, excelname, col)
来源:https://blog.csdn.net/weixin_44570805/article/details/116245964
0
投稿
猜你喜欢
- 推荐阅读:JS iFrame加载慢怎么解决在项目中经常要动态添加iframe,然后再对添加的iframe进行相关操作,而往往iframe还没
- 在PHP中,有两种包含外部文件的方式,分别是include和require。他们之间有什么不同呢?如果文件不存在或发生了错误,require
- 1、首先看SSM(Spring+SpringBoot+Mybatis)的依赖<project xmlns="http://m
- 经常会在连接DB的时候用到,就是不知道代表什么意思。。。RS.OPEN SQL,CONN,A,BA: ADOPENFORWARDONLY(=
- SQL Server有两种备份方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志
- 核心提示:本文针对mysql-noinstall版本,也就是解压缩版的安装配置应用做了个总结,这些操作都是平时很常用的操作。文章中不对mys
- <% Rem Rem ## 在线升级类声明 Class Cls_oUpdate
- 最近对H1的讨论很多(在文章内容页中),大致有以下两种情况:H1应该用于文章的标题上H1应该用于站点的标题上相信大多数人都偏向第一种方式:用
- 这段时间写了很多页面代码,除了一些知识重复以外,也学到css的一些新东西,或许是旧东西,但是还是希望能对大家有用。其实在css里面有很多对a
- 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
- 关于导航栏的设计有很多特效,但你浏览过这样一种导航栏特效吗?当鼠标移到导航栏目上时,导航栏目会被一层“
- 有。试试下面这个程序:saveip.asp<%Server.Scripttimeout = 1000On 
- PHP Date/Time 简介Date/Time 函数允许您从 PHP 脚本运行的服务器上获取日期和时间。您可以使用 Date/Time
- <?php /*============================文件说明===========================
- 最近遇到SQL Server 2005 输入框不能输入中文,在网上查了N久,试验了十几次奏这个法子有用:“把你表中的自动编号列放到最后面”。
- 加上设置字符编码的方法:response.setHeader("charset","gb2312")
- Gmail 作为一个经典的 Web 2.0 应用,在带来革命性的邮件管理体验的同时,以其完整、快速的 AJAX 操作方式,深受用户的推崇和技
- 一、回顾一下前面《Oracle开发之窗口函数》中关于全统计一节,我们使用了Oracle提供的:sum(sum(tot_sales)) ove
- 在Dreamweaver4中,你可以存储你自己设定的图片、链接、flash影片、颜色表、模板等等,组成这个站点的资产,这就是Assets面板
- 请问如何使用CDONTS组件来发送电子邮件?我们可以在IIS4下使用CDONTS来完成。首先要确认是否安装了SMTP服务(OPTIONPAC