openpyxl-如何从Excel文件中检索一行的多列



我正在寻找从一个所需行打印单元格值的正确方法,但我只想要特定列中的单元格值。例如列"A"、"C"、"F"等

以下是我目前拥有的代码,我对此没有任何错误,但我不知道如何实现我想要的结果。

path_file = 'Readfrom.xlsx'
spreadsheet = load_workbook(path_file)
spreadsheet = spreadsheet.active
desire_columns = spreadsheet['A']
disire_row = spreadsheet['5']
for cell in disire_row:
print(cell.value)
path_file = 'Readfrom.xlsx'
wb = load_workbook(path_file) #  Changed variable name
ws = wb.active # Changed variable name
desired_columns = ws['A'] #  Minor change in variable name
desired_row = ws['5'] #  Minor change in variable name
for column in desired_columns: #  Iterate over columns
cell = ws[f"{column}{desired_row}"] #  Create the cell reference
print(cell.value)

你必须反复阅读你的伪代码,你就会找到答案。

我也修正了你的变量,希望你不要介意。尽可能多地使用公共变量,以便其他程序员可以轻松地理解您的代码。此外,电子表格变量特别令人困惑,因为它初始化为工作簿,后来又初始化为工作表。考虑一下您以后是否决定保存工作簿(记得备份excel文件(,或者工作簿中有多张工作表。

也读作";对于循环";以进一步学习。https://www.w3schools.com/python/python_for_loops.asp

您可以使用pandas 从excel读取数据

import pandas as pd
df = pd.read_excel('tmp.xlsx', index_col=0)  
#Cell value can be accessed in this way
print (df['ColumnName'].iloc[rowIndex])
#This also can be done in a loop.
for index, row in df.iterrows():
print(row['ColumnName'])

有关更多详细信息,请参阅此链接https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html

最新更新