Я хотел бы читать только видимые строки из листа Excel в python.

Вход (лист Excel):

enter image description here

Поэтому, когда я фильтрую, например:

enter image description here

В качестве вывода в Python я получу только видимые данные (1 строка) в этом случае.

Вот мой код:

from openpyxl import load_workbook

wb = load_workbook(r'C:\Bureau\test\Data.xlsx') 
ws = wb['workload']

# iterate over all the rows in the sheet
for row in ws: 
    if ws.row_dimensions[row[0].row].hidden == False:
        for cell in row:
            print(cell.value)

Код работает, но дает результаты в таком формате:

enter image description here

Но я хочу иметь обычный формат, такой как таблица или фрейм данных.

Какие-либо предложения?

Спасибо за помощь

1
Fazia Chenna 11 Фев 2021 в 16:39

1 ответ

Лучший ответ

Чтобы создать фрейм данных из видимых строк, вы можете попробовать что-то вроде этого.

from openpyxl import load_workbook
import pandas as pd

wb = load_workbook(r'Data.xlsx') 
ws = wb['workload']
data = []

for row in ws: 
    if ws.row_dimensions[row[0].row].hidden == False:
      row_values = [cell.value for cell in row]
      data.append(row_values)

df = pd.DataFrame(data[1:], columns=data[0])

print(df)
1
norie 11 Фев 2021 в 17:19