xlwings - найти координату ячейки, содержащую значение (дату)

У меня есть лист Excel, который содержит вычисления с использованием формул. Он обновлялся вручную каждый месяц, но в основном я работаю над его автоматизацией. Я много читал о том, как использовать openpyxl, но я хотел читать значения, а не формулы, поэтому я нашел xlwings. Теперь мне трудно найти координаты ячейки в xlwings. Это довольно просто в openpyxl cell.coordinate и нужно что-то похожее на это.

Я новичок в python, поэтому, пожалуйста, не обращайте внимания на мой синтаксис.

Я прочитал лист excel в переменной sheet1 и просто пытаюсь найти дату в первой матрице 50X50 на листе.

Это цикл for:

for row in range(50):
   for col in range(50):
      if sheet1.range(row,col).value == '12/1/2017':
         print ((row,col))

Теперь я знаю, что .value в xlwings возвращает дату и время, и я сравниваю его с датой, и я нашел обходной путь, используя что-то из этого -->http://docs.xlwings.org/en/stable/converters.html

import datetime as dt
sht.range('A1').options(dates=dt.date).value

Но я не понимаю, как мне это реализовать.

В конце получаю ошибку

return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)

com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146827284), None)

Эта ошибка, похоже, не связана с тем, что я думаю, что делаю, но я не могу решить эту проблему.


person vj0911    schedule 21.03.2018    source источник


Ответы (1)


Насколько я понимаю, вы хотите найти координаты ячейки с определенным текстом... Я сделал это:

for row in range(1, 10):
    for col in range(1, 10):
        if sht.range((row,col)).value == "TEXT":
            print("The Row is: "+str(row)+" and the column is "+str(col))

Надеюсь, я помог тебе

person Leonardo Mantovani    schedule 25.06.2018