python合并单元格出现:‘MergedCell‘ object attribute ‘value‘ is read-only 如何处理
出现这种错误一般都是在用方法:ws.merge_cells()
合并单元格后,直接给单元格赋值导致的。
经过我的不断尝试,发现在合并单元格的初始位置赋值就不会出现问题。
比如以下代码:
from openpyxl import Workbook
wb = Workbook()
ws = wb.activews.merge_cells('A2:A99')
ws['A2'] = 'TEST' # 给合并开头的的格子赋值,成功
wb.save("D:test.xlsx")
可正常运行,但如果将ws['A2'] = 'TEST'
改为ws['A3'] = 'TEST'
便会出现异常:
AttributeError: ‘MergedCell’ object attribute ‘value’ is read-only
为啥会这样?以下是个人的推测:
阅读merge_cells
源码
def merge_cells(self, range_string=None, start_row=None, start_column=None, end_row=None, end_column=None):""" Set merge on a cell range. Range is a cell range (e.g. A1:E1) """cr = CellRange(range_string=range_string, min_col=start_column, min_row=start_row,max_col=end_column, max_row=end_row)self.merged_cells.add(cr)self._clean_merge_range(cr)
最后调用了_clean_merge_range(cr)
查看源码:
def _clean_merge_range(self, mcr):"""Remove all but the top left-cell from a range of merged cellsand recreate the lost border information.Borders are then applied"""if not isinstance(mcr, MergedCellRange):mcr = MergedCellRange(self, mcr.coord)cells = mcr.cellsnext(cells) # skip first cellfor row, col in cells:self._cells[row, col] = MergedCell(self, row, col)mcr.format()
其中的注释有一句:
Remove all but the top left-cell from a range of merged cells
从一系列合并的单元格中删除除左上单元格外的所有单元格
and recreate the lost border information.
并且重新创建丢失的边框信息
Borders are then applied
丢失的边框应用到实际
也就是说,python合并单元格的过程是先删除除开左上单元格外的单元格,接下去删除下面所有的单元格并且重建建立边框。
即除开左上的单元格可以访问之外,被删除的那些已经无法进行读写操作了。
python合并单元格出现:‘MergedCell‘ object attribute ‘value‘ is read-only 如何处理相关推荐
- python html网页合并单元格,python合并单元格解决办法
python合并单元格 我要在excle中我要合并(0,0),(1,0)这两个单元格应该怎么写? 下面的写法不对吗? ws.write_merge(0, 1, 0, 0, u"序号" ...
- Python记录(1)-Python合并单元格
因为工作经常遭遇繁重的重复工作,不想将时间花在没有价值的加班上,开始接触Python,很遗憾只能通过网络,书籍等途径自己学习,虽然Python很多人都说很简单,但是对于我这种程序小白来说依然没那么轻松 ...
- python合并单元格居中_Python基于xlrd模块处理合并单元格
目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我们实际 ...
- python合并单元格处理_Python基于xlrd模块处理合并单元格
目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我们实际 ...
- python合并单元格 索引_如何在matplotlib选项卡中合并单元格
我用matplotlib创建了一个表,我想合并一些单元格.索引中具有相同字符串的单元格将合并为一个单元格.在 问题被标记为重复,但链接无法回答我的问题#tbl_handler is an instan ...
- python合并单元格 索引_python笔记:纵向合并表格
工作中我们常常遇到多个格式相同的表格面要合并成一个表格,比如将2019年的数据与2020年的数据合并在一起来进行分析.平时EXCEL时我们通常直接复制粘贴,但有时因表格内容过大,直接粘贴效率低,且当字 ...
- python openpyxl load_workbook报AttributeError: 'MergedCell' object attribute 'hyperlink' is read-only
这个问题真的是困扰,我的openpyxl版本是2.6.4 找了很多办法,最有用的是让把版本回复到2.5.14 (但是恢复了之后可能会出现样式错乱) 解决: 根据错误信息,我们去找到这个包的这一块代码 ...
- java创建excel(不用设置样式,支持xlsx、xls格式, 不支持合并单元格)
推荐:java 读取excel(支持xlsx.xls格式, 支持合并单元格) java写excel 实现效果 实现思路 基本概念 依赖 对外提供的方法 内部方法 代码实现 测试代码 ExcelWrit ...
- 浏览器 excel本地预览,支持合并单元格预览
效果图 说明:支持合并单元格预览 1.index.html <!DOCTYPE html> <html lang="en"> <head>< ...
- python合并word单元格_python之DataFrame实现excel合并单元格_python
这篇文章主要为大家详细介绍了python之DataFrame实现excel合并单元格,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元 ...
最新文章
- POJ2796 Feel Good(单调栈)
- SpringBoot跨域
- php如何实现用户报警,php封装实现钉钉机器人报警接口的示例代码
- Struts2请求参数合法性校验机制
- SpringMVC:后台将List转为Json,传值到页面
- download WM6.5.3 SDK
- (转) mysqldumpslow使用说明总结
- php的simplexml
- 【movable-area、movable-view】 可移动区域组件说明
- 论模式在领域驱动设计中的重要性
- wenbao与最短路(Floyd)
- 分式求二阶导数_一道与三角零点距离有关的导数问题
- 5大网站汇总,搞定新颖的计算机专业毕业设计网站汇总
- 【博客427】通过redfish协议操控服务器
- nvidia驱动和CUDA的安装
- 如何在移动硬盘上安装Linux系统?WIN10 + Ubuntu 18.0.4(LTS)
- 微信公众号-网页内实现微信支付
- IT人物TOP100英雄人物榜
- 大学生学习编程很难吗?怎么样才能学好编程?
- 点与直线位置关系,叉乘