Python 办公自动化 处理 Excel 数据 【1】推荐

话说学好办公自动化,走遍天下都不怕!!!

好的,现在开始。

因为是一些办公自动化的应用场景,所以需要电脑支持excel、word和ppt以及python的运行环境。

如果有电脑不支持Excel word ppt的以及python环境下载安装配置可以去参考。如果有问题欢迎评论区指正,谢谢。

目录

一、xlrd和xrwt 操作Excel

1.xlrd模块

1.1 安装查看并导入依赖

1.2 xlrd常用的函数

1) xlrd.open_workbook函数

2)  data.sheet_loaded()

3)卸载 加载的工作表簿 unload_sheet()

4)获取sheets的几种方式

2. xlrd操作Excel 【读取】

2.1 xlrd操作Excel的行

 2.2   xlrd操作Excel操作列

2.3 操作excel 单元格

3.xlwt模块

3.1 安装导入依赖

3.2 xlwt的内容

1)创建工作簿

2)写入数据

3)写入样式格式化 


一、xlrd和xrwt 操作Excel

xlrd和xrwt都是python的第三方模块。主要介绍模块的依赖安装以及模块的使用。

1.xlrd模块

xlrd是python的第三方模块,用来读取excel表格数据的。 

1.1 安装查看并导入依赖
# 安装依赖
pip install xlrd# 查看已安装依赖
pip list#导入依赖
import xlrd

现在我们已经成功安装xlrd的依赖,并且成功导入模块了,现在我们先了解一下xlrd的常用函数、xlrd如何操作excel单元行列以及单元格。

1.2 xlrd常用的函数

在介绍函数之前,因为是 理论加实践,所以要先新建项目Excel文件.

首先我们先创建项目,这里前面已经新建好了,关于python环境安装运行前面都有的,然后新建demo.js文件,并且在demo文件导入xlrd模块。

我这里有一份Excel工作量核对表 , 现在把文件导入项目命名为data, 放在demo.py文件的同一级

 准备工作现在已完成,现在可以使用xlrd的函数了,主要包括:读取文件函数 | 

1) xlrd.open_workbook函数

读取文件函数返回的是工作簿的对象,函数默认的一些参数如下图所示.

data = xlrd.open_workbook('data.xls')  #返回值是工作簿的对象

2)  data.sheet_loaded()

sheet_loaded 文件簿是否被加载,结果返回布尔值,返回true表示被加载。

3)卸载 加载的工作表簿 unload_sheet()

unload_sheet是卸载被加载的工作簿,卸载之后重新查看之前被加载的文件,已经是false说明已经成功卸载。其他的工作表还是加载的。

 

 

4)获取sheets的几种方式

获取工作表的几种方式:获取全部、获取单个sheet、按照名称或者索引获取sheet、sheet数量、sheet名称name值等。

data = xlrd.open_workbook('data.xls')  #返回值是工作簿的对象
print(data.sheets())  #获取全部sheets 
print(data.sheets()[0]) #根据返回的sheets的index值获取sheet
print(data.nsheets)  # 返回excel工作表的数量
print(data.sheet_by_index(0)) #根据索引获取工作表
print(data.sheet_names()) #获取所有工作表的name 
print(data.sheet_by_name("Sheet1")) #根据sheetname进行获取  Sheet1 这里区分大小写

以上就是xlrd的一些常用函数以及属性,下面介绍xlrd操作行和列。

2. xlrd操作Excel 【读取】

2.1 xlrd操作Excel的行

array('B', [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0]),在单元格的数据类型中:0表示空、1表示字符串 、2表示number 、3表示date 、4.布尔值、 5是error。

#操作excel行  sheet = data.sheet_by_index(0) #通过索引获取第一个sheetprint(sheet.nrows) #获取当前sheet下的有效行数 18print(sheet.row(1)) #该行单元格对象组成的列表print(sheet.row_types(2)) #获取单元格的数据类型print(sheet.row(2)[3].value)  #获取单元格的value值print(sheet.row_values(2)) #得到指定行单元格的值print(sheet.row_len(2))  #得到单元格的长度

 2.2   xlrd操作Excel操作列

和行返回单元格数据类型一样,列也有返回单元格数据类型:0表示空、1表示字符串 、2表示number 、3表示date 、4.布尔值、 5是error。

# excel操作列
sheet = data.sheet_by_index(0)  
print(sheet.ncols)
print(sheet.col(3)) #该列单元格对象列表
print(sheet.col(3)[0].value)
print(sheet.col_values(1)) #返回该列value组成的列表
print(sheet.col_types(2))

上面运行执行结果如下图所示。 

 

操作行和操作列基本方法和属性都已经了解了,下面是如何操作excel单元格。 

2.3 操作excel 单元格

单元格和行列一样,也有数据类型:0表示空、1表示字符串 、2表示number 、3表示date 、4.布尔值、 5是error。

#操作excel 单元格
sheet = data.sheet_by_index(0)
print(sheet.cell(4,4)) #获取第5行第5列的数据
print(sheet.cell_type(4,4))
print(sheet.cell(4,4).ctype) #获取单元格数据类型print(sheet.cell(4,4).value)
print(sheet.cell_value(4,4)) #获取单元格的value值

代码执行结果如下图所示:

 

3.xlwt模块

xlrd是python的第三方模块,用来写入excel表格数据的。 

3.1 安装导入依赖
# 安装写入依赖 xlwt模块
pip install xlwt#查看已安装模块
pip list#导入xlwt模块
import xlwt

xtwt写入Excel的步骤:1.创建工作簿 2.创建工作表 3.填充工作表内容 4.保存文件 

3.2 xlwt的内容
1)创建工作簿

exwt的写入步骤以及注意事项:

import xlwt
# 1.创建工作簿
wb = xlwt.Workbook()  #创建工作簿对象
# 2.创建工作表
ws = wb.add_sheet("CNY")
# 3.填充数据
ws.write_merge(0,1,0,5,"货币兑换表")  # 参数 0,1 是指 第一行第二行合并单元格 0,5 是第一列和第六列合并单元格 货币兑换表是表的名称
# 4.保存
wb.save("2019-CNY.xls") #只支持xls格式 不支持xlsx格式

执行文件之后文件夹生成了刚刚创建的工作簿。

2)写入数据

向工作簿中添加数据

# 要添加的数据
data = (("Data","英镑","人民币","港币","日元","美元"),("01/01/2019",8.722551,1,0.877885,0.062722,6.8759),("01/01/2019",8.634922,1,0.875731,0.062773,6.8601)
)
# 循环遍历之后写入工作簿
for i,item in enumerate(data):for j,val in enumerate(item):ws.write(i+2,j,val)# 保存
wb.save("2019-CNY.xls")

 

写入图片数据

# 创建工作表
wsimg = wb.add_sheet("img") #创建img工作表
#写入图片
wsimg.insert_bitmap("2020.bmp",0,0) #2020.bmp是图片名称 0,0 是从第1行第一列开始插入图片
# 保存
wb.save("2019-CNY.xls") 

3)写入样式格式化 

这里我们把工作簿中的标题以及第一列做出样式调整,包括文字大小、颜色、对齐方式、文字类型、单元格边框、单元格背景、文字对齐方式等。

最终效果和代码都在下面: 

import xlwt# 字体样式
titleStyle = xlwt.XFStyle() #初始化样式
titlefont = xlwt.Font()
titlefont.name = "宋体"
titlefont.bold = True #字体加粗
titlefont.height = 11*20 # 字体大小
titlefont.colour_index=0x08 #字体yanse
titleStyle.font = titlefont# 单元格对齐方式
cellalign = xlwt.Alignment()
cellalign.horz = 0x02 # 水平对齐
cellalign.vert = 0x01 # 垂直对齐
titleStyle.alignment = cellalign# border边框样式
borders = xlwt.Borders() 
borders.right = xlwt.Borders.DASHED  #设置虚线
borders.bottom = xlwt.Borders.DOTTED #设置点线
titleStyle.borders = borders# 背景颜色
datastyle = xlwt.XFStyle()
bgcolor = xlwt.Pattern()
bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN
bgcolor.pattern_fore_colour = 22 #背景颜色22
datastyle.pattern = bgcolor# 1.创建工作簿
wb = xlwt.Workbook()  #创建工作簿对象
# 2.创建工作表
ws = wb.add_sheet("CNY")
wsimg = wb.add_sheet("img") #创建img工作表#写入图片
wsimg.insert_bitmap("2020.bmp",0,0) #2020.bmp是图片名称 0,0 是从第1行第一列开始插入图片# 3.填充数据
ws.write_merge(0,1,0,5,"货币兑换表",titleStyle)  # 参数 0,1 是指 第一行第二行合并单元格 0,5 是第一列和第六列合并单元格 货币兑换表是表的名称data = (("Data","英镑","人民币","港币","日元","美元"),("01/01/2019",8.722551,1,0.877885,0.062722,6.8759),("01/01/2019",8.634922,1,0.875731,0.062773,6.8601)
)for i,item in enumerate(data):for j,val in enumerate(item):if j == 0:ws.write(i+2,j,val,datastyle)else:ws.write(i+2,j,val)# 4.保存
wb.save("2019-CNY.xls") #只支持xls格式 不支持xlsx格式

对应的取值,这里点进去都可以找到。

二、总结

到这里关于操作Excle数据xlrdxlwt的两个第三方模块。

1.模块的安装查看引入以及使用
2.xlrd模块中的常用函数打开工作簿 加载工作表、卸载工作表以及获取工作表的几种方法
3.xlrd模块如何操作Excle以及单元格
4.xlwt模块操作Excel的流程、如何导入数据、如何创建图片类型的文件、如何对写入的文件做
样式格式化、一些常用的样式设置。

2.关于xlrd的实际应用小实战项目放在下一章了。

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

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

相关文章

交通感知与车路协同系统-计算机毕设Java|springboot实战项目

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

QT:事件机制

一、事件机制 qt的核心机制:对象树、信号和槽、事件机制 1.1概念 就是当这件事情发生时,自动执行对应的功能代码。该某块功能代码是虚函数,只需重写该虚函数,即可执行重写的代码。 1.2事件处理简介 1. 什么是事件? (重…

【教学类-76-01】20240820书包01(图案最大化)

背景需求 通义万相生成图片,把图案最大化的方法(切掉白边) 【教学类-75-01】20240817“通义万相图片最大化透明png”的修图流程-CSDN博客文章浏览阅读1.6k次,点赞56次,收藏17次。【教学类-75-01】20240817“通义万相…

【Android 笔记】记移植OpenCV4.8图像人脸识别

前言 因业务需要,使用大屏端摄像头捕获图像,且要识别图像中人脸的数目以及从中随机抽取一人。 业务流程如下,调用摄像头预览、拍照,使用OpenCV库进行人脸识别,将识别到的人脸使用矩形框绘制出来,从识别的人…

【秋招笔试】8.18大疆秋招(第三套)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

STM32CubeMX 配置串口通信 HAL库

一、STM32CubeMX 配置串口 每个外设生成独立的 ’.c/.h’ 文件 不勾&#xff1a;所有初始化代码都生成在 main.c 勾选&#xff1a;初始化代码生成在对应的外设文件。 如 GPIO 初始化代码生成在 gpio.c 中。 二、重写fputc函数 ​ #include <stdio.h>#ifdef __GNUC__#def…

无人机之固定翼无人机的组成

固定翼无人机是根据空气动力学原理设计机翼的形状&#xff0c;靠动力装置产生推力或者拉力&#xff0c;使无人机获得一定速度后&#xff0c;会导致空气在飞机上下表面的压力不同&#xff0c;进而产生升力&#xff0c;其升力主要来源于固定的机翼。大多数都是由机翼、机身、尾翼…

FastHTML:使用 Python 彻底改变 Web 开发

什么是 FastHTML&#xff1f;&#x1f310; FastHTML 是一个现代 Python Web 应用程序框架&#xff0c;其真正目的是让 Python 开发人员轻松进行 Web 开发。它大大减少了对 JavaScript 和 CSS 构建交互式和可扩展 Web 应用程序的依赖。FastHTML 通过使用 Python 对象来表示 HTM…

python 捕获异常

捕获指定异常 e 是保存的异常信息 捕获多个异常

全国大学生数学建模比赛——时间序列(详细解读)

全国大学生数学建模比赛中&#xff0c;时间序列分析是一种重要的方法。以下是对时间序列在该比赛中的详细解读&#xff1a; 一、时间序列的概念 时间序列是按时间顺序排列的一组数据。在数学建模中&#xff0c;时间序列数据通常反映了某个现象随时间的变化情况。例如&#xf…

使用vs配置opencv环境(属性表方法)

opencv官网&#xff1a;https://opencv.org/releases/ 老手回忆&#xff08;新建属性表&#xff09; Step1: 安装VS&#xff0c;安装openCV Step2: 新建项目&#xff0c;新建项目属性表&#xff0c;debug|x64新建属性&#xff0c;命好名字 Step3: VC目录-包含目录中添加: 安装…

经典游戏,用java实现的坦克大战小游戏

今天给大家分享一个使用java编写的坦克大战小游戏&#xff0c;整体还是挺好玩的&#xff0c;通过对这款游戏的简单实现&#xff0c;加深对java基础的深刻理解。 一、设计思路 1.坦克大战小游戏通过java实现&#xff0c;其第一步需要先绘制每一关对应的地图&#xff0c;地图包括…

WPF中RenderTransform,LayoutTransform区别

RenderTransform RenderTransform 是在渲染阶段应用的变换。它不会影响控件的布局&#xff0c;只会影响控件的外观。常用于动画和视觉效果。 • 应用时机&#xff1a;在控件已经完成布局之后。 • 影响范围&#xff1a;仅影响控件的外观&#xff0c;不影响布局。 • 常见用途&…

探索 HarmonyOS 的层叠布局:灵活的 Stack 容器

在应用开发中&#xff0c;灵活的布局设计是提高用户体验的关键之一。HarmonyOS 提供了丰富的布局组件&#xff0c;其中层叠布局&#xff08;Stack Layout&#xff09;是一个强大的工具&#xff0c;可以帮助开发者轻松实现元素的重叠显示。本文将深入探讨 Stack 容器的功能和应用…

【设计模式】六大原则-下

❓首先什么是设计模式&#xff1f; &#x1f635;相信刚上大学的你和我一样&#xff0c;在学习这门课的时候根本不了解这些设计原则和模式有什么用处&#xff0c;反而不如隔壁的C更有意思&#xff0c;至少还能弹出一个小黑框&#xff0c;给我个hello world。 ✨ 如何你和我一样…

ArcGIS Pro基础:状态栏显示栏的比例尺设置和经纬度位置

上图所示&#xff0c;界面下方最左侧是显示的比例尺&#xff0c;可以进行选择设置&#xff0c;也可以进行自定义设置 上图所示&#xff0c;可以手动录入比例尺&#xff0c;同时也可以对比例尺设置别名&#xff0c;比如【实验1】作为特定比例尺的标记 如上图所示&#xff0c;可以…

KEEPALIVED高可用集群最详解

目录 一、高可用集群 1.1 集群的类型 1.2 实现高可用 1.3 VRRP&#xff1a;Virtual Router Redundancy Protocol 1.3.1 VRRP相关术语 1.5.2 VRRP 相关技术 二、部署KEEPALIVED 2.1 keepalived 简介 2.2 Keepalived 架构 2.3 Keepalived 环境准备 2.3.1 实验环境 2…

嵌入式初学-C语言-二七

文件操作 概述&#xff1a; 什么是文件&#xff1a; 是保存在外存储器&#xff08;磁盘&#xff0c;u盘&#xff0c;移动硬盘等等&#xff09;上的数据的集合。 文件操作体现在哪几个方面&#xff1a; 文件内容的读取文件内容的写入 数据的读取和写入可被视为针对文件进行…

Day42 | 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II

语言 Java 739. 每日温度 每日温度 题目 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该…

关于windows环境使用nginx的一些性能问题

遇到的问题 最近在一个windows环境中部署nginx&#xff0c;遇到了以下问题&#xff1a; 1. nginx启动了九个线程&#xff08;1master8woekr&#xff09;&#xff0c;但是所有链接都被1个woker接收&#xff0c;其余worker不工作 2. 用户端访问web很慢&#xff0c;登录服务器使…