簡體   English   中英

如何使用openpyxl遍歷excel電子表格中的每一行

[英]how to loop through each row in excel spreadsheet using openpyxl

我想將excel電子表格中每一行的第一列作為鍵,並將該行中的其余值作為其值,以便可以將它們存儲在字典中。 問題是,當我遍歷行和列時,所有行值都存儲在每個鍵中。

import openpyxl

from openpyxl import load_workbook

file = "test.xlsx"

#load the work book
wb_obj = load_workbook(filename = file)

wsheet = wb_obj['test']

#dictionary to store data
dataDict = {}

value = []

row_count = wsheet.max_row
col_count = wsheet.max_column

# loop to get row and column values
for i in range(2, row_count+1):
    for j in range(i, col_count+1):
        key   = wsheet.cell(row=i, column=1).value
        print (key)
        value.append(wsheet.cell(row=i, column=j).value)
        print (value)

    dataDict[key] = value

#prompt user for input
userInput = input("Please enter an id to find a person's details: ")

print (dataDict.get(int(userInput)))

電子表格中的數據: 在此處輸入圖片說明

我期望的結果是:{1:['John','Doe',4567891234,'johndoe @ jd.ca'],2:['Wayne'Kane',1234567891,'wd @ wd.ca']}

我得到的結果是:{1:['John','Doe',4567891234,'johndoe@jd.ca','Kane',1234567891,'wd@wd.ca'],2:['John','Doe ',4567891234,'johndoe@jd.ca','Kane',1234567891,'wd@wd.ca']}

Openpyxl已經有了使用worksheet.iter_rows()遍歷行的正確方法。 您可以使用它解包第一個單元格的值作為鍵,將其他單元格的值解包作為字典中的列表,對每一行重復一次。

from openpyxl import load_workbook

file = "test.xlsx" #load the work book
wb_obj = load_workbook(filename = file)
wsheet = wb_obj['test']
dataDict = {}

for key, *values in wsheet.iter_rows():
    dataDict[key.value] = [v.value for v in values]

暫無
暫無

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

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