使用 python 只读取 Excel 中的可见行

Faz*_*nna 1 python excel filter pandas

我想只读取 python 中 Excel 工作表中的可见行。

输入(Excel表):

在此输入图像描述

所以当我过滤时:

在此输入图像描述

作为 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)
Run Code Online (Sandbox Code Playgroud)

该代码可以工作,但它给出的结果格式如下:

在此输入图像描述

但我想要使用正常的格式,例如表格或数据框。

有什么建议么?

感谢您的帮助

nor*_*rie 5

要从可见行创建数据框,您可以尝试类似的操作。

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)
Run Code Online (Sandbox Code Playgroud)