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 возвращает datetime, и я сравниваю его с датой, и я нашел обходной путь, используя что-то из этого -> 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)

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

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))

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

Другие вопросы по тегам