我想通过使用openpyxl连接excel中的两个单元格。但是我正在努力在“ for循环”中正确获取代码,因为我必须迭代并合并单元格。到目前为止,这是我的代码
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
Erro屏幕截图:
不确定哪个部分出了问题,或者我输入了错误的逻辑。
输入:
目标输出:
在此方面寻求帮助。
问题是,本节中的字符串格式在连接函数中期望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'
也可以使用熊猫来完成
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)