微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Python 合并 Excel 工作表中的特定单元格

如何解决使用 Python 合并 Excel 工作表中的特定单元格

我一直在尝试通过循环将满足特定条件的单元格与其旁边的单元格合并,但我不太确定如何进行。 例如,从第 7 行开始,如果单元格中有“示例”一词,我希望它与旁边列中的单元格合并,并且我想继续这样做,直到到达该行的末尾. 我目前正在为此使用 openpyxl。

这是我尝试过的(它不起作用):

wb = load_workbook('Test.xlsx')
ws = wb.active
worksheet = wb['Example']
q_cells = []
for row_cells in worksheet.iter_rows(min_row = 7):
    for cell in row_cells:
        if cell.value == 'Sample':
            q_cells.append(cell.coordinate)

for item in q_cells:
    worksheet.merge_cells(item:item+1)

wb.save('merging.xlsx')

我不太确定如何最好地处理此代码。任何帮助将不胜感激!

解决方法

merge_cells 接受一个字符串(例如:“A2:A8”)或一组值。来自文档:

>>> ws.merge_cells('A2:D2')
>>> ws.unmerge_cells('A2:D2')
>>>
>>> # or equivalently
>>> ws.merge_cells(start_row=2,start_column=1,end_row=4,end_column=4)
>>> ws.unmerge_cells(start_row=2,end_column=4)

来源:https://openpyxl.readthedocs.io/en/stable/usage.html

听起来您想找到第一个单元格和最后一个单元格,然后进行合并(这里我使用的是 f 字符串):

ws.merge_cells(f'{first_cell.coordinate}:{last_cell.coordinate}')

openpyxl 中的合并单元格从类型 'Cell' 变为类型 'MultiCellRange',它被指定为特定范围的单元格坐标。 Openpyxl 可以让您重叠合并范围而不会引发错误,但 Excel 不会让您在没有警告的情况下打开生成的文件(并且可能会删除以后的合并)。如果要合并,必须指定整个范围。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?