Как я могу перевести мой случай из кода VBA в Python с использованием xlwings? - PullRequest
0 голосов
/ 08 февраля 2019

Могу ли я узнать, как преобразовать VBA в Python для моего случая с помощью xlwings?

Мой случай:

Данные Excel:

    Excel Data:
  A      B      C       D       E       F      G        H
1 Group_1                               Group_2     
2 Col_A  Col_B  Col_C   Col_D   Col_E   Good    Bad Normal
3 A       10    Q       10      50      1       0   0
4 A       20    Q       20      30      3       3   2
5 A       30    W       10      40      4       4   3
6 B       50    E       20      20      5       5   4
7 B       40    R       Missing Missing 56      7   5
8 B       70    T       30      40      3       9   6
9 C       80    E       Missing Missing 4       4   3

Шаг 1:Я хотел бы использовать автофильтр в A2: H2 для фильтрации «отсутствующих» данных в показанном столбце D:

  A      B      C       D       E       F      G        H
1 Group_1                               Group_2     
2 Col_A Col_B   Col_C   Col_D   Col_E   Good    Bad  Normal
7 B       40    R       Missing Missing 56      7   5
9 C       80    E       Missing Missing 4       4   3

Шаг 2: Удалить значение «Отсутствующие» в фильтруемой строке

  A      B      C       D       E       F      G        H
1 Group_1                               Group_2     
2 Col_A Col_B   Col_C   Col_D   Col_E   Good    Bad  Normal
7 B       40    R                       56      7   5
9 C       80    E                       4       4   3

Шаг 3: Вернуться к полному набору данных

        Excel Data:
  A      B      C       D       E       F      G        H
1 Group_1                               Group_2     
2 Col_A  Col_B  Col_C   Col_D   Col_E   Good    Bad Normal
3 A       10    Q       10      50      1       0   0
4 A       20    Q       20      30      3       3   2
5 A       30    W       10      40      4       4   3
6 B       50    E       20      20      5       5   4
7 B       40    R                       56      7   5
8 B       70    T       30      40      3       9   6
9 C       80    E                       4       4   3

Попытка

Я пробовал код Python с помощью xlwings:

    wb = xw.Book('test.xlsx')
    sheet = wb.sheets["sheet_1"]
    sheet.api.Range('A2').AutoFilter(4,'Missing')

Как мне просто выбратьотфильтрованный диапазон и удалить его?

(Используется для автоматизации; следовательно, row_index после фильтрации всегда изменяется.) Большое спасибо.

...