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…

电商物流信息化管理:淘宝商品快递费用的item_fee解决方案

随着电子商务的飞速发展,物流信息化管理在电商运营中扮演着越来越重要的角色。淘宝作为中国最大的电商平台之一,其商品快递费用是电商物流成本的关键部分。本文将探讨如何通过电商物流信息化管理和淘宝商品快递费用的item_fee解决方案,提高物…

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

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

docusaurus简介及使用心得

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

计算机网络经典问题万字总结(笔试,面试,期末)

计算机网络经典问题(笔试,面试,期末) 1. ALL应用层(Application Layer):传输层(Transport Layer):网络层(Network Layer):…

Hive权限管理

Hive权限管理 1、hive授权模型介绍 (1)Storage Based Authorization in the Metastore Server 基于存储的授权 - 可以对Metastore中的元数据进行保护,但是没有提供更加细粒度的访问控制(例如:列级别、行级别&#xf…

华夏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…

洛谷 P8823

# [传智杯 #3 初赛] 期末考试成绩 ## 题目描述 传智专修学院的 Java 程序设计课程的评价体系是这样的: 首先,所有学生会有一个卷面得分,这个得分一定是一个 $[0,100]$ 之间的整数。 如果卷面得分在 $90$ 分及以上,那么他的 GPA&am…

Mac 上配置Java环境变量

1、查看Java版本信息 admin-Pro ~ % java -versionjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode) 查看安装了那些版本(略) admin-Pro ~…

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

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

残差网络学习

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

jdbc获取mysql数据表的字段和对应的数据类型

最近在做项目的时候因为经常会碰到代码在开发环境可以正常运行,但是到了测试和预生产环境运行报错,但是测试环境和预生产环境的网络与本地是隔离的,无法直接连接数据库,于是想到了把数据拷贝一份到开发环境来,但是有些…