Проблема в том, что при форматировании строки в этом разделе ожидаются 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)