Использование xlwings, чтобы открыть лист Excel. Нужно искать строку и печатать полную строку - PullRequest
0 голосов
/ 19 февраля 2020

Я использую xlwings, чтобы открыть лист Excel. Нужно искать строку в указанном столбце c и печатать полную строку строки без элемента поиска и до новой строки (\ n). Вывод должен быть в новом столбце того же листа.

Ввод:

enter image description here

строка поиска: [game] Вывод:

enter image description here

1 Ответ

1 голос
/ 19 февраля 2020
import xlwings as xw

открыть excel файл с помощью xlwings

filename = r'input.xlsx'
book = xw.Book(filename)
sheet = book.sheets[0]

найти last row из sheet в указанном диапазоне c в этом случае от column 'A'

lrow = sheet.range('A' + str(sheet.cells.last_cell.row)).end('up').row

объявите отдельную переменную для string, который вы будете искать, и column, где будет расположен ваш вывод.

search_string = '[game]'
sheet.range('B1').value = 'output'
output_index = 2

теперь l oop через этот диапазон для посмотрите, находится ли ваша строка поиска в этом диапазоне

for i in range(1, lrow + 1):
    if search_string in str(sheet.range('A{}'.format(i)).value):
        temp = str(sheet.range('A{}'.format(i)).value)
        temp = temp.split(search_string)[1]
        if '[' in temp:
            temp = temp.split('[')[0]
        sheet.range('B{}'.format(output_index)).value = temp
        output_index += 1


book.save()
book.close()

Ниже приведен полный код >>

import xlwings as xw
filename = r'input.xlsx'

book = xw.Book(filename)
sheet = book.sheets[0]
lrow = sheet.range('A' + str(sheet.cells.last_cell.row)).end('up').row
search_string = '[game]'
sheet.range('B1').value = 'output'
output_index = 2

for i in range(1, lrow + 1):
    if search_string in str(sheet.range('A{}'.format(i)).value):
        temp = str(sheet.range('A{}'.format(i)).value)
        temp = temp.split(search_string)[1]
        if '[' in temp:
            temp = temp.split('[')[0]
        sheet.range('B{}'.format(output_index)).value = temp
        output_index += 1


book.save()
book.close()
...