![](/img/trans.png)
[英]how to save qtablewidget data into excel file using openpyxl
[英]How do you save dictionary data to the matching excel row but different column using openpyxl
我正在使用 openpyxl 從 excel 電子表格中讀取列 (A)。 然后我遍歷字典以查找匹配信息,然后我想將此數據寫回同一 Excel 電子表格的 (C) 列。
我試圖弄清楚如何將 append 數據返回到相應的行,但沒有運氣。
代碼
from openpyxl import load_workbook
my_dict = {
'Agriculture': 'ET_SS_Agriculture',
'Dance': 'ET_FA_Dance',
'Music': 'ET_FA_Music'
}
wb = load_workbook("/Users/administrator/Downloads/Book2.xlsx") # Work Book
ws = wb['Sheet1'] # Work Sheet
column = ws['A'] # Column
write_column = ws['C']
column_list = [column[x].value for x in range(len(column))]
for k, v in my_dict.items():
for l in column_list:
if k in l:
print(f'The dict for {l} is {v}')
# append v to row of cell index of column_list
因此,如果我的 excel 電子表格如下所示:
在匹配數據字典后,我希望列 C 看起來像這樣。
為了使用您的方法執行此操作,您需要索引(即:行)將值分配給列 C,您可以在運行column_list
時通過enumerate
獲得
for i, l in enumerate(column_list):
if k in l:
print(f'The dict for {l} is {v}')
# append v to row of cell index of column_list
write_column[i].value = v
寫入所有值后,您將需要運行
wb.save("/Users/administrator/Downloads/Book2.xlsx")
保存您的更改
也就是說,您對電子表格中的數據進行了許多不必要的迭代,並且通過以列而不是行來處理這些數據,也使您自己有些困難。 您已經有了包含 A 列中值的 dict,因此您可以使用split
進行直接查找。
您正在添加每一行,因此在我看來,循環遍歷行是有意義的。
my_dict = {
'Agriculture': 'ET_SS_Agriculture',
'Dance': 'ET_FA_Dance',
'Music': 'ET_FA_Music'
}
wb = load_workbook("/Users/administrator/Downloads/Book2.xlsx") # Work Book
ws = wb['Sheet1'] # Work Sheet
for row in ws:
try:
# row[0] = column A
v = my_dict[row[0].value.split("-")[0]] # get the value from the dict using column A
except KeyError:
# leave rows which aren't in my_dict alone
continue
# row[2] = column C
row[2].value = v
wb.save("/Users/administrator/Downloads/Book2.xlsx")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.