python - 使用 Python Openpyxl 和 For 循环连接 Excel 中的两个单元格
问题描述
我想使用 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
错误截图:
不确定哪个部分出了问题,或者我的逻辑错误。
输入:
预期输出:
期待在这方面的帮助..
解决方案
问题是您在本节中的字符串格式在连接函数中需要 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)
推荐阅读
- java - 在可能的情况下,是否应该消除 SQL 查询以支持使用 Hibernate?
- php - 在codeigniter中上传多个文件并使用数组重命名每个文件
- android - AndroidX - 程序类型已经存在:androidx.annotation.BoolRes
- javascript - 等待所有元素完全使用 Promise.all
- mysql - 使用中间表用相关表的总和值更新一个表的值
- google-cloud-platform - 无法针对 BigQuery 运行查询 - 权限错误 403
- android - 画廊而不是Android中的相机活动(Tensorflow)
- roku - Roku API 获取响应方法不允许
- ballerina - Ballerina 项目不会导入包并给出编译错误
- spring - Spring @Nullable 检查 Maven 编译器