目录

一、题目描述

二、效果展示

三、源码展示

四、分析

1、获取工作簿对象

2、创建工作表对象

3、读取excel表中的数据

4、将表头写入工作表

5、将数据写入工作表

6、体温样式

7、状态标识


一、题目描述

对体温测量登记表中的数据筛选处理,将体温不正常的数据用颜色填充,以及显示体温的状态。

二、效果展示

三、源码展示

import xlwt
import xlrd# 根据体温设置背景颜色def get_temp_status(temp):if temp < 37.2:status = '正常'elif temp < 38.5:status = '发热'else:status = '高热'return statusdef get_temp_style(temp):style = xlwt.XFStyle()pattern = xlwt.Pattern()pattern.pattern = xlwt.Pattern.SOLID_PATTERNif temp < 37.2:pattern.pattern_fore_colour = xlwt.Style.colour_map['green']elif temp < 38.5:pattern.pattern_fore_colour = xlwt.Style.colour_map['orange']else:pattern.pattern_fore_colour = xlwt.Style.colour_map['red']style.pattern = patternreturn styledef main():wb = xlrd.open_workbook('体温测量登记表.xls')#获取工作簿对象sheet1 = wb.sheet_by_index(0)#通过下标索引创建一个工作表对象data = []for row in range(1, sheet1.nrows):record = []for col in range(sheet1.ncols):record.append(sheet1.cell(row, col).value)data.append(record)wb2 = xlwt.Workbook()#创建一个写的工作簿对象sheet2 = wb2.add_sheet('带颜色标记的体温测量登记表')sheet2.write(0, 0, '姓名')sheet2.write(0, 1, '体温')sheet2.write(0, 2, '状态')count = 0for index, record in enumerate(data):num, temp = recordif temp >= 37.2:count += 1sheet2.write(index + 1, 0, num)sheet2.write(index + 1, 1, temp, get_temp_style(temp))sheet2.write(index + 1, 2, get_temp_status(temp))sheet2.write(102, 0, '总人数')sheet2.write(102, 1, f'{len(data)}人')sheet2.write(103, 0, '异常人数')sheet2.write(103, 1, f'{count}人')wb2.save('体温测量登记表_最全.xls')if __name__ == "__main__":main()

四、分析

1、获取工作簿对象

wb = xlrd.open_workbook('体温测量登记表.xls')#获取工作簿对象

2、创建工作表对象

sheet1 = wb.sheet_by_index(0)#通过下标索引创建一个工作表对象

3、读取excel表中的数据

可以将excel表中的数据看做是二维的数组(python中称为列表),先读取第一行的每一列,然后依次的读取每一行,也就是用到两个for循环去实现,python对应的就是列表了,将一行的数据存储到一维的列表中,然后再将列表存储到列表中,就形成了二维的列表。

data = []for row in range(1, sheet1.nrows):record = []for col in range(sheet1.ncols):record.append(sheet1.cell(row, col).value)data.append(record)

4、将表头写入工作表

  sheet2 = wb2.add_sheet('带颜色标记的体温测量登记表')sheet2.write(0, 0, '姓名')#第0行的第0列写入姓名sheet2.write(0, 1, '体温')#第0行第一列写入体温sheet2.write(0, 2, '状态')#第0行第二列写入状态#此三处写入就相当于是写表头了

5、将数据写入工作表

之前从excel表中读取数据,现在写到另一个表中,因为不能在源文件上做更改(原数据要保留);

存入的是一个二维列表,取出时用枚举的方法,这样不仅能去到二维列表里面一维列表还能得到它是位于第几位的列表,此时的位置加1就是写入文件的行数,列数就是0,1,2,内容就是姓名、体温、以及状态,但是此处的体温的样式是做了改变的

count = 0for index, record in enumerate(data):num, temp = record#解包if temp >= 37.2:count += 1sheet2.write(index + 1, 0, num)sheet2.write(index + 1, 1, temp, get_temp_style(temp))sheet2.write(index + 1, 2, get_temp_status(temp))

6、体温样式

在写Excel文件时,我们还可以为单元格设置样式,主要包括字体(Font)、对齐方式(Alignment)、边框(Border)和背景(Background)的设置,xlwt对这几项设置都封装了对应的类来支持。

要设置单元格样式需要首先创建一个XFStyle对象,再通过该对象的属性对字体、对齐方式、边框等进行设定

对于样式的设置不用了解的很深刻,需要用到的时候套用即可

def get_temp_style(temp):style = xlwt.XFStyle()pattern = xlwt.Pattern()pattern.pattern = xlwt.Pattern.SOLID_PATTERN#填充if temp < 37.2:pattern.pattern_fore_colour = xlwt.Style.colour_map['green']
#当温度小于37.2度时用绿色填充elif temp < 38.5:pattern.pattern_fore_colour = xlwt.Style.colour_map['orange']
#温度小于38.5度大于37.2度时用橙色填充else:
#小于37.2或者大于38。5的温度用红色填充pattern.pattern_fore_colour = xlwt.Style.colour_map['red']style.pattern = patternreturn style#返回样式对象

7、状态标识

这个就相对简单了,就只用根据温度的大小去返回对应的值即可

def get_temp_status(temp):if temp < 37.2:status = '正常'elif temp < 38.5:status = '发热'else:status = '高热'return status

python办公自动化练习——体温相关推荐

  1. 【组队学习】【26期】编程实践(Python办公自动化)

    编程实践(Python办公自动化) 论坛版块: http://datawhale.club/c/team-learning/29-category/29 开源内容: https://github.co ...

  2. Python 办公自动化之一 Excel

    在我们日常工作中,经常会使用 Word.Excel.PPT.PDF 等办公软件,但是,经常会遇到一些重复繁琐的事情,这时候手工操作显得效率极其低下;通过 Python 实现办公自动化变的很有必要,接下 ...

  3. Python 办公自动化:让你的工作效率翻番

    **你还把时间浪费在重复工作上吗?**每天都在做着重复的工作,面对无穷无尽的报表- 你希望从每天工作 8 小时,进化成每天工作 10 分钟吗? 如果你天天被繁琐的工作搞得身心俱疲,那么你一定要学习 P ...

  4. layui中table监听单元格_最全总结 | 聊聊 Python 办公自动化之 PPT(中)

    点击上方 "AirPython",选择 "加为星标" 第一时间关注 Python 技术干货! 1. 前言 上一篇文章简单地介绍了 PPT 的文档结构,并使用 p ...

  5. excel 图片转url_最全总结 | 聊聊 Python 办公自动化之 Excel(下)

    聊聊 Python 数据处理全家桶(Memca 篇) 点击上方"AirPython",选择"加为星标" 第一时间关注 Python 技术干货! 1. 前言 前面 ...

  6. python办公自动化博客_最全总结 | 聊聊 Python 办公自动化之 Word(下)

    1. 前言 关于 Word 文档的读写,前面两篇文章分别进行了一次全面的总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 最全总结 | 聊聊 Python 办公自动化之 Word( ...

  7. python自动化办公 51cto_聊聊 Python 办公自动化之一 Excel

    本文转载自微信公众号「AirPython」,作者星安果.转载本文请联系AirPython公众号. 1. 前言 在我们日常工作中,经常会使用 Word.Excel.PPT.PDF 等办公软件 但是,经常 ...

  8. Python办公自动化 - 4 PDF办公自动化

    这是一个Python编程简单入门的系列教程,课程所有资料(代码.测试文件)可以从百度网盘下载: 链接:https://pan.baidu.com/s/1oS27bE9Pyns4Patf05ehLA 提 ...

  9. Python办公自动化 - 3 Excel办公自动化

    这是一个Python编程简单入门的系列教程,课程所有资料(代码.测试文件)可以从百度网盘下载: 链接:https://pan.baidu.com/s/1oS27bE9Pyns4Patf05ehLA 提 ...

  10. Python办公自动化 - 2 Word办公自动化

    这是一个Python编程简单入门的系列教程,课程所有资料(代码.测试文件)可以从百度网盘下载: 链接:https://pan.baidu.com/s/1oS27bE9Pyns4Patf05ehLA 提 ...

最新文章

  1. 你在网上看到的0失误游戏视频,可以是用AI生成的丨Demo在线可玩
  2. 跟我一起考PMP--项目质量管理
  3. Forms Builder 学习笔记 1 ――安装
  4. 答网友问题:职业化代码设计原则讨论
  5. Eclipse --Type /com.xx.app/gen already exists but is not a source folde解决方案
  6. 这或许才是产品人真实的工资情况
  7. 汉子拼音不认识缤纷_儿童学拼音app哪个最好
  8. latex 基本用法(二)—— 矩阵(增广矩阵、长虚线)
  9. 华为交换机修改主机名
  10. 由DispatcherServlet看spring mvc请求处理过程
  11. VBS 实现无限弹窗整人
  12. 软件测试:QQ登录测试用例
  13. 编程英文单词的标准缩写
  14. 利用BioEdit软件进行短序列序列比对之查看突变位点
  15. pytorch统计矩阵非0的个数_计算TensorFlow中非零元素的个数
  16. vue货币过滤器以及路由参数的使用
  17. js简单生成UUID
  18. STM32中断优先级、FreeRTOS中断优先级,任务优先级
  19. 电镀废水除镍、电镀废水除总铬的工艺技术汇总分享
  20. Action与ActionListener的事件处理机制及实例分析

热门文章

  1. 软件测试简历职业规划怎么写,职业规划测试
  2. 如何根据MAC地址获取设备厂商
  3. idea导出配置和导入配置
  4. 微型计算机原理与接口周荷琴,微型计算机原理与接口技术周荷琴
  5. node.js与npm下载及配置流程
  6. 唐纳德 高德纳给年轻人的建议 Donald Knuth - My advice to young people
  7. Louvain 算法的核心思路以及数据结构(最完善版)
  8. 投标文件 医院弱电系统_甲级办公楼智能化弱电设计方案适合弱电行业人士学习!...
  9. 前端vue导出excel
  10. 以太坊使用及代币开发实战