Home > Software design >  openpyxl - How to retrieve multiple columns of one row from an Excel file?
openpyxl - How to retrieve multiple columns of one row from an Excel file?

Time:02-10

I'm looking for the correct way to print cell values from one desired row, but I only want the cell values that are in specific columns. e.g. columns 'A','C','F' etc.

Below is the code I currently have, I get no errors with this but am at a loss with how to progress with my desired outcome.

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)

CodePudding user response:

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)

You must read your pseudocode over and over again and you will find the answer.

I have also corrected your variables, hope you dont mind. Use the common variables as much as possible so that other programmers can easily understand your code. Also, the spreadsheet variable is specially confusing as it initialized as the workbook and later as a worksheet. Think about if you decide later that you want to save the workbook (remember to back up the excel file), or you have multiple sheets in the workbook.

Also read "for loop" to further your study. https://www.w3schools.com/python/python_for_loops.asp

CodePudding user response:

You can read data from excel using pandas

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'])

Refer this link for further details https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html

  • Related