我一直在尝试通过循环将符合特定条件的单元格与其旁边的单元格合并,但我不太确定如何进行。
例如,从第 7 行开始,如果单元格中包含“Sample”一词,我希望它与旁边列中的单元格合并,并且我想继续这样做,直到到达该行的末尾。
我目前正在为此使用 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, start_column=1, end_row=4, end_column=4)
Source: https://openpyxl.readthedocs.io/en/stable/usage.html
听起来您会想要找到第一个单元格和最后一个单元格,然后进行合并(这里我使用 f 字符串):
ws.merge_cells(f'{first_cell.coordinate}:{last_cell.coordinate}')
openpyxl 中的合并单元格从“Cell”类型更改为“MultiCellRange”类型,后者被指定为特定的单元格坐标范围。 Openpyxl 可以让您重叠合并范围而不会引发错误,但 Excel 不会让您在没有警告的情况下打开结果文件(并且可能会删除后来的合并)。如果要合并,则必须指定整个范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)