Как найти первую строку данных и столбец Excel в python xlwings - PullRequest
0 голосов
/ 06 марта 2020

Я хочу найти первую строку данных и столбец Excel в python xlwings. Ниже приведены примеры:

enter image description here

Или

enter image description here

1 Ответ

3 голосов
/ 06 марта 2020

Я считаю, что безопаснее всего это использовать свойство API и просто использовать метод VBA Range.Find. Теперь мы можем искать что-нибудь, используя подстановочный знак *, чтобы убедиться, что вы найдете формулы (которые могут показывать "") И значения. Упрощенный пример:

import xlwings as xw
app = xw.App(visible=False, add_book=False)
wb = app.books.add()
ws = wb.sheets.active
ws['C2'].value = 'check'
row_cell = ws.api.Cells.Find(What="*", After=ws.api.Cells(ws.api.Rows.Count, ws.api.Columns.Count), LookAt=xw.constants.LookAt.xlPart, LookIn=xw.constants.FindLookIn.xlFormulas, SearchOrder=xw.constants.SearchOrder.xlByRows, SearchDirection=xw.constants.SearchDirection.xlNext, MatchCase=False) 
column_cell = ws.api.Cells.Find(What="*", After=ws.api.Cells(ws.api.Rows.Count, ws.api.Columns.Count), LookAt=xw.constants.LookAt.xlPart, LookIn=xw.constants.FindLookIn.xlFormulas, SearchOrder=xw.constants.SearchOrder.xlByColumns, SearchDirection=xw.constants.SearchDirection.xlNext, MatchCase=False)
print((row_cell.Row, column_cell.Column))

Мы можем использовать SearchDirection.xlNext и начать с самой последней Excel ячейки. Это рекомендуемый способ в VBA для надежного поиска вашей последней использованной строки / столбца, но также может надежно найти вашу первую строку / столбец.

...