如何使用 Openpyxl 将一行数据合并到一个单元格中
How to combine one row's data into a single cell using Openpyxl
我必须合并一行中用“-”分隔的 3 个单元格。
输入为:
A1 A9 AMF
A2 B9 BMF
A1 A9 AMF (Same as 1st row)
A4 D9 DMF
预期输出为:
A1-A9-AMF
A2-B9-BMF
A4-D9-DMF
我用过下面的,
for r1 in row:
strcell1 = '-'.join(map(str,row)) # converting to string list
cell1 = ''.join(strcell1) # joining the cells
list_value = [cell1]
ws.append(list_value) #writing on a different sheet of same workbook
但是我没有得到预期的输出,是不是我遗漏了什么?
您正在尝试 .join()
将 row
组合在一起,但这行不通。改为尝试:
wb = openpyxl.load_workbook('your_workbook.xlsx')
ws1.get_sheet_by_name('Sheet1')
combined = []
for row in ws.rows:
combined.append('-'.join(r1.value for r1 in row))
结果:
>>> print(combined)
[u'A1-A9-AMF', u'A2-B9-BMF', u'A1-A9-AMF', u'A4-D9-DMF']
将结果写入其他sheet:
ws2 = wb.create_sheet('Sheet2')
for val in combined:
ws2.append([val])
wb.save('your_workbook_modified.xlsx')
我必须合并一行中用“-”分隔的 3 个单元格。
输入为:
A1 A9 AMF
A2 B9 BMF
A1 A9 AMF (Same as 1st row)
A4 D9 DMF
预期输出为:
A1-A9-AMF
A2-B9-BMF
A4-D9-DMF
我用过下面的,
for r1 in row:
strcell1 = '-'.join(map(str,row)) # converting to string list
cell1 = ''.join(strcell1) # joining the cells
list_value = [cell1]
ws.append(list_value) #writing on a different sheet of same workbook
但是我没有得到预期的输出,是不是我遗漏了什么?
您正在尝试 .join()
将 row
组合在一起,但这行不通。改为尝试:
wb = openpyxl.load_workbook('your_workbook.xlsx')
ws1.get_sheet_by_name('Sheet1')
combined = []
for row in ws.rows:
combined.append('-'.join(r1.value for r1 in row))
结果:
>>> print(combined)
[u'A1-A9-AMF', u'A2-B9-BMF', u'A1-A9-AMF', u'A4-D9-DMF']
将结果写入其他sheet:
ws2 = wb.create_sheet('Sheet2')
for val in combined:
ws2.append([val])
wb.save('your_workbook_modified.xlsx')