openpyxl: как я могу получить данные из определенных столбцов через все строки? - PullRequest
0 голосов
/ 06 июня 2018

Я просматривал форумы несколько раз и не нашел ничего, что охватывало бы поиск конкретной информации о столбцах при переборе всех строк.

У меня есть электронная таблица, которая имеет 8 столбцов и 2200 строк.

Мне просто нужны столбцы 0 5 8 9 (AGJK)

Мой текущий код ниже, он возвращает все значения из AK и удаляет None.

from openpyxl import Workbook , load_workbook
from itertools import chain

wb = Workbook()

wb = load_workbook("CR_Master_List.xlsx", read_only=True)

ws = wb.active

mylist = []
def iter_rows(ws):
    for row in ws.iter_rows():
        yield [cell.value for cell in row if cell.value is not None]

mylist = list(iter_rows(ws))

print(mylist)

Любая помощьбудет оценена.

1 Ответ

0 голосов
/ 06 июня 2018

Должно работать следующее.

cols = [0, 5, 8, 9]

def filter_cols(ws):
    for row in ws.iter_rows(max_col=10):
        cells = [cell.value for (idx, cell) in enumerate(row) if (
             idx in cols and cell.value is not None)]
        yield cells
...