欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python使用openpyxl读取合并单元格的值

程序员文章站 2022-03-13 11:57:34
目录问题:假设在test.xlsx的“sheet1”工作表中,a1:d3区域的值如下:要求给定指定的行、列以及对应的工作表作为参数,能够正确解析合并单元格,获取指定单元格的值。如果直接根据行列获取对应...

问题:

假设在test.xlsx的“sheet1”工作表中,a1:d3区域的值如下:

python使用openpyxl读取合并单元格的值

要求给定指定的行、列以及对应的工作表作为参数,能够正确解析合并单元格,获取指定单元格的值。

如果直接根据行列获取对应单元格的值,则合并单元格非左上角的其他单元格都会获取到none值,如下:

解决思路:

获取到对应单元格后,判断该单元格是否为合并单元格,如果是,则找到该合并区域并获取左上角的值返回。

通过 sheet.merged_cell_ranges属性,可以获取当前工作表所有的合并区域列表:

测试代码:

结果如下:

python使用openpyxl读取合并单元格的值

我们巡着openpyxl.worksheet.merge.mergedcellrange查找其源码,发现定义了in操作,可以直接通过in确认某个坐标是否位于区域内

python使用openpyxl读取合并单元格的值

这时候我们已经基本具备获取合并单元格的条件了。

完整代码如下:

结果如下:

第1行第1列:1
第1行第2列:2
第1行第3列:3
第1行第4列:8
第2行第1列:1
第2行第2列:4
第2行第3列:5
第2行第4列:8
第3行第1列:6
第3行第2列:7
第3行第3列:7
第3行第4列:8

到此这篇关于python使用openpyxl读取合并单元格的值的文章就介绍到这了,更多相关python openpyxl读取合并单元格内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!