Python办公自动化Day1

目录

  • 文章声明⭐⭐⭐
  • 让我们开始今天的学习吧!
    • xlwt创建Excel
    • xlrd读取Excel
    • xlutils修改Excel
    • xlwt设置样式
      • 常见的字体样式
      • 单元格宽高
      • 内容对齐方式
      • 设置单元格边框
      • 设置背景颜色
      • 样式整合起来的写法


文章声明⭐⭐⭐

  1. 该文章为我(有编程语言基础,非编程小白)的 Python办公自动化自学笔记
  2. 知识来源为 B站UP主(好久没吃肉灬)的Python办公自动化课程视频,归纳为自己的语言与理解记录于此并加以实践
  3. 关于办公自动化,知识基础、概念我都不会记录于此,更多的是记录实践,即以具体实操代码的形式展现给大家
  4. 不出意外的话,我大抵会 持续更新
  5. 想要了解前端开发(技术栈大致有:Vue2/3、微信小程序、uniapp、HarmonyOS、NodeJS、Typescript)与Python的小伙伴,可以关注我!谢谢大家!

让我们开始今天的学习吧!

xlwt创建Excel

名字记忆:xl为Excel表格的一种后缀 + write = xlwt

首先我们先尝试一下基础操作:

# pip install xlwt
import xlwt# 创建一个Excel表
excel = xlwt.Workbook()# 创建一个工作簿
sheet = excel.add_sheet('员工表')# 写入数据到此工作簿,第一个数字为行,第二个数字为列,都是从0开始计算的
sheet.write(0, 0, 'Richie')
sheet.write(2,6,'Taylor Swift')# 保存此Excel在电脑上
excel.save('我的PythonExcel.xls')

运行代码,会在当前目录生成Excel,内容如如下:
在这里插入图片描述做一个完整的员工表,方便接下来的实例演示:

# pip install xlwt
import xlwt# 创建一个Excel表
excel = xlwt.Workbook()# 创建一个工作簿
sheet = excel.add_sheet('员工表')# 写入数据到此工作簿
sheet.write(0, 0, '员工姓名')
sheet.write(0, 1, '员工性别')
sheet.write(0, 2, '员工年龄')sheet.write(1, 0, 'Richie')
sheet.write(1, 1, 'male')
sheet.write(1, 2, '21')sheet.write(2, 0, 'Taylor Swift')
sheet.write(2, 1, 'female')
sheet.write(2, 2, '34')sheet.write(3, 0, 'Mike')
sheet.write(3, 1, 'male')
sheet.write(3, 2, '65')sheet.write(4, 0, 'Nancy')
sheet.write(4, 1, 'female')
sheet.write(4, 2, '18')# 保存此Excel在电脑上
excel.save('我的PythonExcel.xls')

内容如下:
在这里插入图片描述


xlrd读取Excel

名字记忆:xl为Excel表格的一种后缀 + read = xlrd
已有的表格内容为:
在这里插入图片描述
代码如下:

# pip install xlrd
import xlrd# 打开Excel
excel = xlrd.open_workbook('我的PythonExcel.xls')
# 查询有几个工作簿
print(f'该Excel中有{excel.nsheets}个工作簿')
# 查询所有工作簿的名称
print(f'这些工作簿的名字为:{excel.sheet_names()}')
# 根据索引选择某一个工作簿
sh1 = excel.sheet_by_index(0)
# 根据名字选择某一个工作簿
sh2 = excel.sheet_by_name('员工表')
# 查询工作簿里有几行几列数据
print(f'该工作簿里有{sh1.nrows}{sh1.ncols}列数据')
# 获取单元格的值
print(f'第一行第二列的值为:{sh1.cell_value(0,1)}')  # 直接精准获取值
print(f'第二行第三列的值为:{sh1.cell(1,2).value}')  # 先找到单元格,再value
print(f'第四行第一列的值为:{sh1.row(3)[0].value}')  # 先第四行,再第一列,再value
# 获取整行或整列的数据
print(sh1.row_values(0))  # 获取第一行的数据
print(sh1.col_values(0))  # 获取第一列的数据
# 遍历所有数据
for r in range(sh1.nrows):print('\n')for c in range(sh1.ncols):print(sh1.cell_value(r, c), end=' ')

输出结果如下:

该Excel中有1个工作簿
这些工作簿的名字为:['员工表']
该工作簿里有53列数据
第一行第二列的值为:员工性别
第二行第三列的值为:21
第四行第一列的值为:Mike
['员工姓名', '员工性别', '员工年龄']
['员工姓名', 'Richie', 'Taylor Swift', 'Mike', 'Nancy']员工姓名 员工性别 员工年龄 Richie male 21 Taylor Swift female 34 Mike male 65 Nancy female 18

xlutils修改Excel

实例演示,代码如下:

# pip install xlutils
import xlrd
from xlutils.copy import copy# 打开Excel
excel1 = xlrd.open_workbook('我的PythonExcel.xls')
# 复制数据到一个新的Excel,copy()把xlrd对象拷贝转化为xlwt对象
newExcel = copy(excel1)
# 选择工作簿
sheet = newExcel.get_sheet(0)
# 添加一行数据
sheet.write(5, 0, 'Jack')
sheet.write(5, 1, 'male')
sheet.write(5, 2, 98)
# 新增一个工作簿
sheet2 = newExcel.add_sheet('汇总年龄')
# 汇总员工表里的员工年龄之和并放入 汇总年龄 这个工作簿中
age_count = 0
# 先把刚刚加入的新数据年龄加入
age_count += 98
# 再遍历xlrd里的数据
origin_sheet = excel1.sheet_by_index(0)
for r in range(1, origin_sheet.nrows):age_count += int(origin_sheet.cell_value(r, 2))
sheet2.write(0, 0, '年龄总计')
sheet2.write(1, 0, age_count)
# 保存这个新Excel文件
newExcel.save('我的PythonExcel2.xls')

于是我们创建了一个新的名叫 “我的PythonExcel2.xls” 的文件,内容如下:
在这里插入图片描述
“汇总年龄” 工作簿也创建了:
在这里插入图片描述

“汇总年龄” 工作簿内容如下:
在这里插入图片描述


xlwt设置样式

常见的字体样式

实例演示代码如下:

import xlwt# 创建Excel以及工作簿
excel = xlwt.Workbook()
sheet = excel.add_sheet('样式')# 设置字体样式对象
font_style = xlwt.Font()
# 字体
font_style.name = '微软雅黑'
# 颜色
font_style.colour_index = 2
# 大小
font_style.height = 11 * 20
# 加粗
font_style.bold = True
# 下划线
font_style.underline = True
# 斜体
font_style.italic = True# 放入总样式对象里
style = xlwt.XFStyle()
style.font = font_style# 写数据
sheet.write(0, 0, 'Richie')  # 没加样式
sheet.write(0, 1, 'Taylor', style)  # 加了样式# 保存Excel
excel.save('我的PythonExcel3.xls')

效果如下:
在这里插入图片描述


单元格宽高

实例演示代码如下:

import xlwt# 创建Excel以及工作簿
excel = xlwt.Workbook()
sheet = excel.add_sheet('样式')# 设置第一行的单元格高度
sheet.row(0).height_mismatch = True  # 开启设置高度的权限
sheet.row(0).height = 10 * 256
# 设置第一列的单元格宽度
sheet.col(0).width = 20 * 256# 保存Excel
excel.save('我的PythonExcel3.xls')

效果如下:
在这里插入图片描述


内容对齐方式

单元格较大时,内容对齐方式默认为左下角:
在这里插入图片描述
修改对齐方式,实例演示代码如下:

import xlwt# 创建Excel以及工作簿
excel = xlwt.Workbook()
sheet = excel.add_sheet('样式')# 设置第一行的单元格高度
sheet.row(0).height_mismatch = True  # 开启设置高度的权限
sheet.row(0).height = 10 * 256
# 设置第一列的单元格宽度
sheet.col(0).width = 20 * 256
# 设置第二列的单元格宽度
sheet.col(1).width = 20 * 256# 设置对齐方式
alg = xlwt.Alignment()
alg.horz = 2  # 1为左对齐,2为水平居中,3为右对齐
alg.vert = 1  # 0为上对齐,1为垂直居中,2为下对齐# 设置样式对象
style = xlwt.XFStyle()
style.alignment = alg# 写入数据,默认对齐方式
sheet.write(0, 0, 'Richie')
# 写入数据,水平垂直居中的对齐方式
sheet.write(0, 1, 'Taylor',style)# 保存Excel
excel.save('我的PythonExcel3.xls')

效果如下:
在这里插入图片描述


设置单元格边框

实例演示代码如下:

import xlwt# 创建Excel以及工作簿
excel = xlwt.Workbook()
sheet = excel.add_sheet('样式')# 设置单元格边框
border = xlwt.Borders()
# 设置边框样式,值的数字对应怎么样的样式这里不予描述,自行上网查询
border.left = 1
border.right = 2
border.top = 3
border.bottom = 4
# 设置颜色,值的数字对应怎么样的颜色这里不予描述,自行上网查询
border.left_colour = 1
border.right_colour = 2
border.top_colour = 3
border.bottom_colour = 4# 设置样式对象
style = xlwt.XFStyle()
style.borders = border# 写入数据,加入样式
sheet.write(1, 1, 'Richie', style)# 保存Excel
excel.save('我的PythonExcel3.xls')

效果如下:
在这里插入图片描述


设置背景颜色

实例演示代码如下:

import xlwt# 创建Excel以及工作簿
excel = xlwt.Workbook()
sheet = excel.add_sheet('样式')# 设置背景颜色
p = xlwt.Pattern()
p.pattern = xlwt.Pattern.SOLID_PATTERN
p.pattern_fore_colour = 2# 设置样式对象
style = xlwt.XFStyle()
style.pattern = p# 写入数据,加入样式
sheet.write(1, 1, 'Richie', style)# 保存Excel
excel.save('我的PythonExcel3.xls')

效果如下:
在这里插入图片描述


样式整合起来的写法

实例演示代码如下:

import xlwt# 创建Excel以及工作簿
excel = xlwt.Workbook()
sheet = excel.add_sheet('样式')# 设置样式对象
style = xlwt.easyxf('font: bold on, color_index 4; align: vert center, horiz center')# 写入数据,加入样式
sheet.write(1, 1, 'Richie', style)# 保存Excel
excel.save('我的PythonExcel3.xls')

效果如下:
在这里插入图片描述

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

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

相关文章

Ubuntu及Docker 安装rabbitmq

安装ubuntu 前 先暴露端口: 5672 用于与mq服务器通信用 15672 管理界面使用的端口 docker命令:docker run -itd --name ubuntu -p 5672:5672 -p 15672:15672 ubuntu 进入docker : docker exec -it ubuntu /bin/bash 步骤: 1. 更新安装源…

otter-harbor同步

一. 部署及依赖 otter Github (一). 服务启动 1. mysql 5.6版本以上,作为 otter-manger 使用的数据库 # mysql docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7 --character-set-serverutf8mb4 --collation-serverutf8mb4_un…

Alpha突触核蛋白神经退行性疾病

Alpha突触核蛋白科研背景 ● Alpha突触核蛋白约 15kDa, 140个氨基酸 ● StressMarq在E. coli中过表达人源基因然后将蛋白从细胞质基质中纯化出来 ● 未折叠的alpha突触核蛋白单体在12% SDS-PAGE上为~15 kDa的条带 StressMarq/欣博盛生物的Alpha突触核蛋白有以下两类&#xf…

Open3D 最小二乘拟合平面(直接求解法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫自重。 一、算法原理 平面方程的一般表达式为: A x + B y + C z

docusaurus简介及使用心得

docusaurus简介 Docusaurus 是 Facebook 专门为开源项目开发者提供的一款易于维护的静态网站创建工具,使用 Markdown 即可更新网站。构建一个带有主页、文档、API、帮助以及博客页面的静态网站,只需5分钟。 同类竞品还有vuepress,docusaurus…

华夏ERP getAllList;.ico敏感信息泄露漏洞

漏洞描述 华夏ERP是基于SpringBoot框架和SaaS模式,立志为中小企业提供开源好用的ERP软件,目前专注进销存财务功能。主要模块有零售管理、采购管理、销售管理、仓库管理、财务管理、报表查询、系统管理等。支持预付款、收入支出、仓库调拨、组装拆卸、订…

个性化TikTok外贸工具定制!突破营销新境界!

随着全球化的加速发展,外贸行业正面临着前所未有的机遇和挑战,在这个竞争激烈的市场环境中,如何脱颖而出,吸引更多的潜在客户,成为每个外贸企业亟待解决的问题,而个性化TikTok外贸工具的定制,正…

尺寸公差分析与尺寸链计算软件-DTAS3D到底能给我们带来哪些价值?

【技能】DTAS3D能给我们带来哪些价值? DTAS3D是一款高度集成的公差分析软件,旨在为产品开发团队提供准确的建议,从而放心地将设计发布给制造部门。下面是DTAS3D的关键价值和应用: 1.与三维CAD无缝集成: DTAS3D与三维CAD软件 (CATIA、NX、Cr…

MySQL中CASE when 实战

CASE 语法 CASEWHEN condition1 THEN result1WHEN condition2 THEN result2WHEN conditionN THEN resultNELSE result END; 将表中的内容转换为右边的形式: 1、创建表,创建数据 CREATE TABLEchapter10_7 (order_id VARCHAR(255) NULL,price VARCHAR(25…

大模型三级跳:2023年AI行业的崭新篇章

2023年,大模型的发展如同一场三级跳,迅速跃升至新的高度。从ChatGPT的火爆,到众多大厂纷纷入场,再到百模大战的激烈角逐,这一年的AI行业充满了竞争与变革。 首先,大模型的崛起标志着AI技术进入了一个新的阶…

uniapp中如何使用百度tts生成文字语音并播放

第一步先在百度云里面申请一个tts应用,这里默认你们都会了哈,申请完是这样的 第二步在manifest.json注册一下 第三步进项目,先获取token handleGetToken() {// client_id和client_secret就是百度API Key和Secret Keyuni.request({url: https://aip.ba…

TKEStack容器管理平台实战之部署wordpress应用

TKEStack容器管理平台实战之部署wordpress应用 一、TKEStack介绍1.1 TKEStack简介1.2 TKEStack特点1.3 TKEStack架构图 二、kubernetes集群介绍2.1 k8s简介2.2 k8s架构图 三、本次实践介绍3.1 实践环境要求3.2 本次实践环境规划3.3 本次实践简介 四、安装容器管理平台4.1 安装T…

ACL实现固定时间访问资源——项目

文章目录 一、前言二、项目拓扑三、项目需求四、配置思路五、配置步骤1 IP地址2 端口类型3 静态路由4 流策略 六、结语 免责声明 本文旨在提供信息和解决问题的建议,观点和建议可能不适用于个人情况,仅供参考!!! 文章中…

残差网络学习

参考B站同济子豪兄的Resnet讲解 网络退化,不是梯度消失(根本没有开始学习),梯度爆炸,过拟合。 不需要再拟合复杂底层的那个映射了,原来输入的基础上你需要进行哪些偏移哪些修改 残差预测值和真实值的偏差 一…

锐捷配置PVLAN

一、实验拓扑 二、实验目的 PVLAN可以通过主VLAN和辅助VLAN的概念,部署隔离技术,实现用户间的互访控制。 三、实验配置 SW2 Ruijie >enable Ruijie #configure terminal Ruijie (config)#vlan 20 Ruijie (config-vlan)#private-vlan community …

视频号小店如何运营?流程跑通就成功了一大半!

我是电商珠珠 视频号小店是视频号团队发展的电商平台,目前处于项目的风口期,很多有想法的新手并不知道应该怎么去运营,今天我就来给大家讲一下。 一、入驻 视频号小店入驻的门槛较高,需要准备一张企业的营业执照,身…

Drupal 远程代码执行 CVE-2019-6340 已亲自复现

Drupal 远程代码执行 CVE-2019-6340 已亲自复现 漏洞名称漏洞描述影响版本 漏洞复现环境搭建 修复建议总结 漏洞名称 漏洞描述 Drupal是一个开源且以PHP语言写成的内容管理框架(CMF) 研究人员发现Drupal存在安全漏洞(CVE-2019-6340),当攻击者以PATCH或POST方式传送…

拥抱数字化转型,共赢数字时代 | 创维汽车商学院走进竹云

数字化浪潮汹涌而来,变革与创新接踵而至。随着数字技术日益融入经济社会发展的各个领域,数字经济与实体经济的“双向奔赴”也不断催生着新产业、新业态、新模式,为经济社会发展持续注入创新活力。12月19日,创维汽车商学院带领嘉宾…

Git版本控制系统:简介、演变与优缺点

目录 前言1 版本控制概述2 集中式版本控制的优缺点2.1 优点2.2 缺点 3 分布式版本控制的优缺点3.1 优点3.2 缺点 4 Git的发展过程结语 前言 在软件开发和团队协作中,版本控制是至关重要的。它允许开发人员跟踪文件的更改历史,协同工作并管理代码的不同版…

Shell编程自动化之特殊Shell扩展变量

1.变量的处理 1.1 如果parameter变量值为空,那么返回str字符串。 ${parameter:-str} 1.2 如果parameter变量值为空,那么str替代变量值,且返回其值。 ${parameter:str} 1.3 如果parameter变量值为空,那么str当作stderr输出&am…