使用 Python Openpyxl 和 For 循环连接 Excel 中的两个单元格

Concatenate Two Cells in Excel Using Python Openpyxl And For loop

我想使用 openpyxl 连接 excel 中的两个单元格。但我正在努力在 "for loop" 中获得正确的代码,因为我必须迭代和连接单元格。这是我目前的代码

import openpyxl
wk=openpyxl.load_workbook(r"C:\Users\hp\Desktop\Uarch\ConcatDemo.xlsx")
sh=wk['Sheet1']
rows=sh.max_row
columns=sh.max_column
for row_num in range(1,rows+1):
    sh['C{}'.format(row_num)] = '=CONCATENATE(A{},",",B{})'.format(row_num)


wk.save(r"C:\Users\hp\Desktop\Uarch\ConcatDemo.xlsx")

我得到

IndexError: tuple index out of range

截图错误:

不确定是哪一部分出了问题,或者我的逻辑有误。

输入:

预期输出:

期待这方面的帮助..

问题是您在本节中的字符串格式在连接函数中需要 2 个值而不是 1 个值。

'=CONCATENATE(A{},",",B{})'.format(row_num)

我可以用这个实现你想要的行为

import openpyxl
wk=openpyxl.load_workbook("path_to_file.xlsx")
sh=wk['Sheet1']
rows=sh.max_row
columns=sh.max_column
for row_num in range(1,rows+1):
    sh['C{}'.format(row_num)] = '=CONCATENATE(A{},",",B{})'.format(row_num,row_num)
wk.save('file_output.xlsx')

隔离错误

'A{}B{}'.format(1)
#IndexError       

'A{}B{}'.format(1, 1)
'A1B1'

这也可以使用 Pandas

来完成
import pandas as pd
file = pd.read_excel("path_to_file.xlsx", header=None, sheet_name="Sheet1")
file[3] = file[0] + ',' + file[1]
file.to_excel("output_file2.xlsx", index=False, header=False)