编程小白的自学笔记十六(python办公自动化操作EXCEL表格)

简介: 编程小白的自学笔记十六(python办公自动化操作EXCEL表格)

前言

前面我们学了对表格还有列的增、删、改、查,今天我们再学习一些新的内容。


一、表格冻结

什么是表格冻结:表格冻结是指在Excel中,将指定的行或列固定不动,以便在滚动时不会移动。这样可以方便地查看和比较数据。  例如,如果您想查看第一行的数据,而不想滚动到第二行,那么您可以将第一行锁定,这样它就不会随着滚动而移动了。

在python中,我们可以使用freeze_panes来实现表格的冻结,比如说,我们一般都是第一行不动,因为第一行是标题,我们可以知道每一列是什么,特别是列特别多的时候,就显得尤为的重要。下面看代码:

import openpyxl
wb=openpyxl.load_workbook('测试0709.xlsx')
ws=wb.active
ws.freeze_panes='A2'
wb.save('测试0709.xlsx')

通过以上代码我们就成功锁定了第一行,至此我们提出几个疑问:

1、为什么是A2不是A1

你亲自操作一下EXCEL表格,你就会发现,其实你也是选中第二行,然后点冻结窗口,来实现锁定第一行功能的,而不是选中第一行。

2、那么B2可不可以

我将代码改成B2以后,发现是可以的,仍然第一行是锁定的,滚轮向下滑依然完美。

3、那么F2没有数据的可以不可以

答案也是可以的,我将代码修改之后,也是成功运行,但是同时我发现一个问题,‘A,B,F也不是没有用处的,他们是负责锁定列的,B代表锁定B前面的列,也就是说锁定了A列,F锁定了A到E列。

4、那么不写A或者2行不行

既然一个代表锁定行,一个代表锁定列,我现在只需要锁定行,那么列就不写了,只写个“2”行不行?答案是不行的,我帮你们试过了,会报错。

二、设置字体样式

无论是word还是excel,我们在日常工作中都会有一些设置字体的大小、颜色等,当然我们也可以用Python来实现这个功能。首先我们对字体的相关内容进行输出:

import openpyxl
wb=openpyxl.load_workbook('大于50的表格.xlsx')
ws=wb.active
font=ws['A1'].font
print(font.name,font.size,font.color)
wb.save('大于50的表格.xlsx')

可以看出,我们想输出字体的名字、大小和颜色,输出结果为:

Calibri 11.0 <openpyxl.styles.colors.Color object>

Parameters:

rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type='theme'

字体的名字为:“Calibri”,“Calibri”是一种无衬线字体,最初发布于微软Windows Vista中,亦为微软Microsoft Office 2007套装软件的默认字体。  它是一款现代的无衬线字体,具有细微的圆角和曲线,具有真正的斜体、小写字母和多种数字集。

字体的大小为11磅,颜色就是RGB,是NONE,我估计没设置颜色就是NONE。

下面我们就要对字体进行设置了,我们先看看没有设置之前的样式:

然后我们使用代码将字体、颜色、大小、倾斜全部替换掉

import openpyxl
from openpyxl.styles import Font
wb=openpyxl.load_workbook('大于50的表格.xlsx')
ws=wb.active
ws['A1'].font=Font(name='黑体',size=30,bold=True,italic=True,color='ff0000')
wb.save('大于50的表格.xlsx')

运行后,我们看结果

是成功的,我们在详细解读下代码,只要把Font类说清楚,就清楚了。

`Font`是openpyxl库中的一个类,用于设置单元格的字体属性。它有以下属性:

- `name`:字体名称,如Arial、Calibri等。

- `size`:字体大小,整数类型。

- `bold`:是否加粗,布尔类型。

- `italic`:是否斜体,布尔类型。

- `underline`:是否下划线,布尔类型。

- `color`:字体颜色,可以是十六进制颜色代码或RGB元组。

- `scheme`:字体方案,如major、minor等。

- `family`:字体家族,如sans-serif、serif等。

修改之后我们再使用输出代码输出下字体属性看一看。输出结果为:

黑体 30.0 <openpyxl.styles.colors.Color object>

Parameters:

rgb='00ff0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb'

能显示的地方显示确实已经修改了。

三、设置对齐方式

同上,导入对齐方式的库,使用起来和字体一样,在这里就不用代码赘述了,直接介绍下相关库。

我们要使用from openpyxl.styles import Alignment  导入库

`Alignment`是openpyxl库中的一个类,用于设置单元格的对齐方式。它有以下属性:

- `horizontal`:水平对齐方式,可以是`left`、`center`或`right`。

- `vertical`:垂直对齐方式,可以是`top`、`center`或`bottom`。

- `textRotation`:文本旋转角度,整数类型。

- `wrapText`:是否自动换行,布尔类型。

- `shrinkToFit`:是否自动缩小单元格以适应内容,布尔类型。

- `indent`:缩进距离,整数类型。

- `relativeIndent`:相对缩进距离,整数类型。

- `justifyLastLine`:是否对最后一行进行对齐,布尔类型。

- `readingOrder`:数字顺序,整数类型。

四、设置边框

设置边框有点复杂,需要导入两个类。

python
from openpyxl import Workbook
from openpyxl.styles import Border, Side
# 创建工作簿和工作表
wb = Workbook()
ws = wb.active
# 设置单元格边框样式
border = Border(left=Side(style='thin', color='000000'),
                right=Side(style='thin', color='000000'),
                top=Side(style='thin', color='000000'),
                bottom=Side(style='thin', color='000000'))
# 设置单元格边框颜色
for row in ws.iter_rows():
    for cell in row:
        cell.border = border
# 保存工作簿
wb.save('example.xlsx')

在这个例子中,我们首先导入了openpyxl库和Border、Side类。然后,我们创建了一个名为example.xlsx的Excel文件,并创建了一个名为ws的工作表。接下来,我们使用Border和Side类来定义单元格边框样式和颜色。最后,我们使用iter_rows函数遍历所有单元格,并将单元格边框应用到每个单元格上。最终,我们将工作簿保存到硬盘上。

 

相关文章
|
18天前
|
数据采集 IDE 测试技术
Python实现自动化办公:从基础到实践###
【10月更文挑战第21天】 本文将探讨如何利用Python编程语言实现自动化办公,从基础概念到实际操作,涵盖常用库、脚本编写技巧及实战案例。通过本文,读者将掌握使用Python提升工作效率的方法,减少重复性劳动,提高工作质量。 ###
36 1
|
22天前
|
人工智能 自然语言处理 IDE
通义灵码让AI帮你实现自动化编程
通义灵码是由阿里云与通义实验室联合开发的智能编码辅助工具,具备行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答及异常报错排查等功能。该工具支持200多种编程语言,兼容主流IDE,如Visual Studio Code、Visual Studio和JetBrains IDEs。通义灵码在Gartner发布的AI代码助手魔力象限中表现出色,成为唯一进入挑战者象限的中国科技公司。目前,通义灵码下载量已超过470万,每日辅助生成代码超3000万次,被开发者广泛采用。
|
27天前
|
数据管理 程序员 数据处理
利用Python自动化办公:从基础到实践####
本文深入探讨了如何运用Python脚本实现办公自动化,通过具体案例展示了从数据处理、文件管理到邮件发送等常见办公任务的自动化流程。旨在为非程序员提供一份简明扼要的实践指南,帮助他们理解并应用Python在提高工作效率方面的潜力。 ####
|
2月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
23 3
|
2月前
|
存储 开发工具 Python
【Python项目】外星人入侵项目笔记
【Python项目】外星人入侵项目笔记
41 3
|
2月前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
18 0
|
2月前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
15 0
|
2月前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
11 0
|
2月前
|
并行计算 Python
Python错误笔记(一):CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up env
这篇文章讨论了CUDA初始化时出现的未知错误及其解决方案,包括重启系统和安装nvidia-modprobe。
150 0
|
2月前
|
存储 BI 数据库
使用 Python 实现自动化办公
使用 Python 实现自动化办公
30 0