Как получить строку и столбец ячейки Excel на основе значения ячейки с помощью python

Как определить строку ячейки и столбец ячейки на основе значения ячейки xl в python...

лист.ячейка (строка, столбец) дает значение, но если у нас есть значение, то как получить соответствующую строку и значение столбца оболочки

я искал, но я мог знать, как идентифицировать детали ячейки на основе значения ячейки..

Пожалуйста, помогите мне заранее спасибо


person user1182090    schedule 05.09.2012    source источник
comment
какой модуль python вы используете для доступа к файлам excel? ответ будет частично зависеть от этого.   -  person oz123    schedule 05.09.2012
comment
возможно, я ошибаюсь, но я не думаю, что вы можете, если вы не перебираете все ячейки и не проверяете каждое значение на соответствие цели. См. stackoverflow.com/questions/778093/   -  person Fredrik Pihl    schedule 05.09.2012
comment
@Oz123 Oz123 я использую модуль xlrd........ любой другой хороший модуль для чтения из Excel   -  person user1182090    schedule 05.09.2012
comment
@Fredrik, когда мы читаем из sh.row (какая-то строка), мы получаем список значений, но из этого как получить имя столбца и имя строки вместе для каждого значения   -  person user1182090    schedule 05.09.2012
comment
См. это: stackoverflow.com/a/958903/297323 или я неправильно вас понял?   -  person Fredrik Pihl    schedule 05.09.2012
comment
@Fredrik, ты знаешь, как получить диапазон имен для конкретной ячейки?   -  person user1182090    schedule 05.09.2012
comment
@Oz123 Oz123 Эй, ты знаешь, как получить диапазон имен для определенной ячейки?   -  person user1182090    schedule 05.09.2012
comment
@ user1182090, нет, извините. Я свободен от excel, но мой вопрос был необходим. Если вы хотите, чтобы люди могли помочь вам, вы должны помочь им помочь вам. Предоставление широкой информации может облегчить процесс. Вполне возможно, что модуль A делает это иначе, чем xlrd.   -  person oz123    schedule 05.09.2012


Ответы (1)


Вам придется перебирать рабочие листы, затем строки рабочего листа, а затем ячейки в строке. Вы должны отслеживать номер строки и столбца, поскольку класс xlrd Cell, похоже, не хранит это:

import sys
import xlrd

_ordA = ord('A')

def find_val_in_workbook(wbname, val):
    wb = xlrd.open_workbook(wbname)
    for sheet in wb.sheets():
        for rowidx in range(sheet.nrows):
            row = sheet.row(rowidx)
            for colidx, cell in enumerate(row):
                if cell.ctype != 2:
                    continue
                if cell.value != val:
                    continue
                if colidx > 26:
                    colchar = chr(_ordA + colidx / 26)
                else:
                    colchar = ''
                colchar += chr(_ordA + colidx % 26)
                print '{} -> {}{}: {}'.format(sheet.name, colchar, rowidx+1, cell.value)

find_val_in_workbook(sys.argv[1], float(sys.argv[2]))

вызвать скрипт с именем файла .xls и значением для поиска

person Anthon    schedule 15.03.2013