在以前的文章中,我们介绍了操作Excel的模块openpyxl的入门知识,相关文章可以从主页获取。接下来我们来学习一下openpyxl这个python模块中的其他知识,本次文章我们来学习一下单元格(cell)操作的相关知识。
接下来我们查看一个单元格常见的属性值看看:
上述代码的输出我这里就不再进行解释了。输出的结果是一些Cell的属性,除了这些属性还有一些其他的属性如:
具体的这些属性的实现和意义大家可以在openpyxl中的Cell类中找到相应的解释。
上述就是一些常见的属性值,大家在工程中没有找到自己想要的就去源码类中人去寻找,后面的例子中也会使用到这些属性值,到时候我们可以在稍介绍一些。
注:在cell的方法中,有一个read_only类。如:
很显然这是只读模式下使用的,那么上述代码输出什么大家自己研究。
2.设置单元格宽度和高度
在实际的工作中,有时候我们需要对单元格的大小(即高度和宽度进行设置)。那么这个该怎么实现呢?假设现在我们需要对单元格的宽度和高度进行调整,调整的方式如下:我们以A1单元格为例:
这种设置还是非常简单的也是非常常见的。如果我们需要对不同的单元格进行设置我们使用for循环就可以了。
那么自适应的单元格该怎么设置呢?
关于这个自适应的单元格size的设置,本人没有找到可以直接使用的API,但是想到一个大概的方法:遍历列,找到最长的字符串,然后据此设置列的宽。这里我也正好给大家分享一个上一位开发者提供的代码:
稍微解释一下代码里面为什么使用了一个try-except呢?这个问题也比较简单,那么也留给大家思考咯!
合并单元格在日常中也是非常常见的,合并单元格有两种方式:
第一行代码直接使用单元格样式指出需要合并的单元格,第二行代码则是使用行列的方式来指明需要合并的单元格,第三行代码输出我们已经合并的单元格:A1:B1 C3:E5。第四行代码输出我们已经合并的单元格所组成的列表。
假设我们的数据样例为:
(一)接下来我们来进行Font的设置,代码如下
设置后的结果如下,显然单元格A2被设置为我们想要设置的值,上述代码的设置的一些含义或属性为:字体名称、字体大小、字体颜色、加粗、斜体、垂直对齐方式、下划线、删除线。
(二)接下来我们来进行Border和Side的设置,代码如下:
A3单元格设置后的样式如下:
其中属性值border_style的值在源代码中给出了以下几种,大家可以试验一下,看看设置不同的值会有什么样的效果。
(三)接下来我们来进行PatternFill填充的设置,代码如下:
首先是参数fill_type,这个参数是填充的类型,openpyxl提供了以下几种属性。
值的注意的是如果fill_type为None,则后续的参数都是不生效的。另外start_color代表前景色,这些颜色都是十六进制的aRGB颜色,a代表透明度。如果想要纯色填充的话可以就可以使用用fill_type = solid,然后使用前景色就可以了。
为方便大家使用颜色填充,这里对颜色的选择做出一个小的说明:
首先十六进制颜色码大家可以直接搜索相关的网站(或百度)就可以获取到,比如以下这个网页链接:
然后透明度怎么设置呢?这给出一个表:(透明度和对应的值,其中100%为完全不透明)
假设现在我们有一个DA70D6十六进制颜色码,在其头部拼上一个透明度如B3,则这个aRGB颜色的值为:B3DA70D6。还是很简单的。
(四)接下来我们来进行Aignment 填充的设置,代码如下:
注:单元格的属性是可以复制的,如:
# 复制时指定字体为“微软雅黑”,其他属性来自fsheet1(五)接下来我们来进行单元格数字格式设置,代码如下:
单元格的数字格式也是常见的,大家可以在openpyxl中的numbers.py文件中找到数字的格式,这里贴一些:
以上就是本次的文章,介绍的内容比较简单,大家跟着学习的时候最好也跟着实践一下。后期我们将继续介绍其他方面的知识。比如在Excel中使用公式,进行表格的数据的过滤等操作。大家在学习的时候有什么疑问,也欢迎在评论区留言。