簡體   English   中英

使用 Python Openpyxl 和 For 循環連接 Excel 中的兩個單元格

[英]Concatenate Two Cells in Excel Using Python Openpyxl And For loop

我想使用 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM