[python]python筛选excel表格信息并保存到另一个excel

在这里插入图片描述

目录

  • 关键词
  • 平台说明
  • 背景
  • 所需库
    • 1.安装相关库
    • 2.代码实现
      • source
      • target1

关键词

==python、excel、DBC、openpyxl ==

平台说明

项目Value
python版本3.6

背景

从一个excel表中遍历删选信息并保存到另一个excel表

所需库

1.openpyxl :是一个用于读写 Excel 文件的 Python 库。

1.安装相关库

pip install openpyxl 

2.代码实现

source

在这里插入图片描述

target1

在这里插入图片描述

import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())import os
from openpyxl import Workbook
from openpyxl import load_workbook
if os.path.exists('source.xlsx'):wb_source = load_workbook('source.xlsx')
else:wb_source = Workbook()
sheet_source = wb_source.activeif os.path.exists('target1.xlsx'):wb_target = load_workbook('target1.xlsx')
else:wb_target = Workbook()
sheet_target = wb_target.activeglobal target_row
global class_target
global headteacher
global col
target_row = 2
for row in range(4,112):for col in range(1,19):data_source = sheet_source.cell(row=row,column=col).valueif data_source == "班级" and col == 1:breakelse:if col == 1:#sheet_target.cell(row=target_row, column=5,value = data_source)#在第5列写入班级class_target = data_source #保存当前班级elif col == 2:#sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名#sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任headteacher = data_source #保存当前班主任姓名elif col == 4:sheet_target.cell(row=target_row, column=10,value = sheet_source["D3"].value)#在第10列写入课程名称sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任  target_row += 1 #换行elif col == 5 and data_source!= None:sheet_target.cell(row=target_row, column=10,value = sheet_source["E3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任         target_row += 1elif col == 6:sheet_target.cell(row=target_row, column=10,value = sheet_source["F3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任             target_row += 1elif col == 7:sheet_target.cell(row=target_row, column=10,value = sheet_source["G3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任          target_row += 1elif col == 8:sheet_target.cell(row=target_row, column=10,value = sheet_source["H3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任            target_row += 1elif col == 9:sheet_target.cell(row=target_row, column=10,value = sheet_source["I3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任            target_row += 1elif col == 10 and data_source!= None:sheet_target.cell(row=target_row, column=10,value = sheet_source["J3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任           target_row += 1elif col == 11:sheet_target.cell(row=target_row, column=10,value = sheet_source["K3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任           target_row += 1elif col == 12:sheet_target.cell(row=target_row, column=10,value = sheet_source["L3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任           target_row += 1elif col == 13:sheet_target.cell(row=target_row, column=10,value = sheet_source["M3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任            target_row += 1elif col == 14 and data_source!= None:sheet_target.cell(row=target_row, column=10,value = sheet_source["N3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任            target_row += 1elif col == 15:sheet_target.cell(row=target_row, column=10,value = sheet_source["O3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任            target_row += 1elif col == 16:sheet_target.cell(row=target_row, column=10,value = sheet_source["P3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任          target_row += 1elif col == 17:sheet_target.cell(row=target_row, column=10,value = sheet_source["Q3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任           target_row += 1elif col == 18:sheet_target.cell(row=target_row, column=10,value = sheet_source["R3"].value)sheet_target.cell(row=target_row, column=5,value = class_target)#在第5列写入班级sheet_target.cell(row=target_row, column=1,value = data_source)#在第1列写入老师姓名if data_source == headteacher :sheet_target.cell(row=target_row, column=6,value = '是')#在第6列写入是否为班主任else:sheet_target.cell(row=target_row, column=6,value = '否')#在第6列写入是否为班主任           target_row += 1                
wb_source.save('source.xlsx') 
wb_source.close() 
wb_target.save('target1.xlsx') 
wb_target.close() print('数据提取完成')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/151766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车级低压差稳压器LDO LM317BD2TR4G原理、参数及应用

LM317BD2TR4G主要功能特性分析 : LM317BD2TR4G 低漏 (LDO) 线性电压稳压器是一款可调 3 端子正向 LDO 电压器,能够在 1.2 V 至 37 V 的输出电压范围内提供 1.5 A 以上的电流。此电压稳压器使用非常简便,仅需两个外部电阻即可设置输出电压。另…

cobol数据类型

数据类型 数据部(data division)是用来描述程序中使用的变量的。 data name 数据名称 数据名称必须在数据部中定义,才能在过程部中使用。必须有一个用户自定义的名称,不能使用关键字,为存储实际数据的存储单元提供引…

基于RK3588全高端智能终端机器人主板

一、小尺寸板型设计 该款主板为小型板,尺寸仅为125*85mm,更小更紧凑,可完美适应各类高端智能自助终端; 二、八核高端处理器 采用RK3588S八核64位处理器,8nm LP制程,主频最高达2.4GHz,搭载Andr…

深入了解 Bat 脚本:简单而强大的自动化工具——基础版

🏫博客主页:魔王-T 🏯系列专栏:自动化脚本工具 🥝大鹏一日同风起 扶摇直上九万里 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 🖊️引言🫘Bat 脚本的基础知识🌈 什么是…

一个前端非侵入式骨架屏自动生成方案

目录 背景 现有方案调研 侵入业务式手写代码 非侵入业务式手写代码 非侵入式骨架屏代码自动生成 技术方案 设计原则 架构图 骨架屏生成 骨架屏注入 优化点 部分技术细节解析 puppeteer 文本块处理 图片块处理 a 标签处理 自定义属性处理 首屏HTML处理 首屏样…

[模版总结] - 树的基本算法3 - 结构转化

二叉树结构转化 通常将二叉树根据某些要求进行结构重构,比如线性结构转化(链表,数组),序列化等。 常见题型 注:这类题目最基本的解题思路是利用递归分治 (也可以使用迭代方法),在构建树结构的时候,我们通…

春秋云境靶场CVE-2022-28512漏洞复现(sql手工注入)

文章目录 前言一、CVE-2022-28512靶场简述二、找注入点三、CVE-2022-28512漏洞复现1、判断注入点2、爆显位个数3、爆显位位置4 、爆数据库名5、爆数据库表名6、爆数据库列名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。…

前置语音群呼与语音机器人群呼哪个更好

最近通过观察自己接到的营销电话,通过语音机器人外呼的量应该有所下降。同时和客户交流获取到的信息,也是和这个情况类似,很多AI机器人群呼的量转向了OKCC前置语音群呼。询问原因,说是前置语音群呼转化更快,AI机器人群…

通过汇编理解cortex-m3:第0章

第0章:准备工作 基本想法:利用汇编和gdb调试,来学习cortex-m3汇编指令,以及一些寄存器的功能。 软件和硬件: 硬件:韦东山瑞士军刀中的最小核心板(STM32F103C8T6) STLINK-V2&#…

力扣刷题-二叉树-二叉树最小深度

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。(注意题意) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出&#x…

mysql表字段数据类型对应java类型

下面是常见的 MySQL 数据表字段数据类型以及对应的 Java 类型列表: 整数类型:TINYINT -> byte 或 BooleanSMALLINT -> shortMEDIUMINT -> intINT -> intBIGINT -> long浮点数类型:FLOAT -> floatDOUBLE -> doubleDECIM…

【数据结构(二)】队列(2)

文章目录 1. 队列的应用场景和介绍1.1. 队列的一个使用场景1.2. 队列介绍 2. 数组模拟队列2.1. 思路分析2.2. 代码实现 3. 数组模拟环形队列3.1. 思路分析3.2. 代码实现 1. 队列的应用场景和介绍 1.1. 队列的一个使用场景 银行排队的案例: 1.2. 队列介绍 队列是一…

基于STC12C5A60S2系列1T 8051单片的IIC总线器件数模芯片PCF8591实现数模转换应用

基于STC12C5A60S2系列1T 8051单片的IIC总线器件数模芯片PCF8591实现数模转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍IIC总线器件数模芯片PCF8591介绍通过按…

前缀和(c++,超详细,含二维)

前缀和与差分 当给定一段整数序列a1,a2,a3,a4,a5…an; 每次让我们求一段区间的和,正常做法是for循环遍历区间起始点到结束点,进行求和计算,但是当询问次数很多并且区间很长的时候 比如,10^5 个询问和10^6区间长度,相…

基于机器学习的居民消费影响因子分析预测

项目视频讲解: 基于机器学习的居民消费影响因子分析预测_哔哩哔哩_bilibili 主要工作内容: 完整代码: import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import missingno as msno import warnings warnings.filterwarnin…

py 使用cx_Freeze打包

cx_Freeze 是一个用于将 Python 脚本打包成可执行文件的库。它可以让你轻松地将 Python 程序转换为独立的可执行文件,使其在没有 Python 解释器的计算机上运行。 要在 Py 中使用 cx_Freeze 打包程序,请按照以下步骤操作: 安装 cx_Freeze&…

emq Neuron工业协议采集使用

emq Neuron工业协议采集使用 Neuron 简介 EMQ X Neuron 是运行在各类物联网边缘网关硬件上的工业协议商业化网关软件,支持一站式接入和解析数十种工业协议,并转换成 MQTT 协议接入工业物联网平台。用户可以通过基于 Web 的管理控制台可以实现在线的网关…

IDEA调用接口超时,但Postman可成功调用接口

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

消息中间的应用场景

1、异步处理 比如用户在电商网站下单,下单完成后会给用户推送短信或邮件,发短信和邮件的过程就可以异步完成。因为下单付款是核心业务,发邮件和短信并不属于核心功能,并且可能耗时较长,所以针对这种业务场景可以选择先…

OpenCV快速入门:直方图、掩膜、模板匹配和霍夫检测

文章目录 前言一、直方图基础1.1 直方图的概念和作用1.2 使用OpenCV生成直方图1.3 直方图归一化1.3.1 直方图归一化原理1.3.2 直方图归一化公式1.3.3 直方图归一化代码示例1.3.4 OpenCV内置方法:normalize()1.3.4.1 normalize()方法介绍1.3.4.2 normalize()方法参数…