Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 9, 2020 12:48:57

mandelshtam1
Зарегистрирован: 2020-04-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Индекс таблицы в docx

 import docx
doc = docx.Document('./123.docx')
i = 0
for t in doc.tables:
    for ro in t.rows:
        if ro.cells[0].text=="белый" :
            ??? # магия
table = doc.tables[i]
a_cells = table.rows[0].cells
z = a_cells[3].text

Подскажите как узнать индекс таблиц (ы) в которой встречается слово “белый”?

Офлайн

#2 Апрель 9, 2020 14:46:57

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Индекс таблицы в docx

Подскажите как узнать индекс таблиц (ы) в которой встречается слово “белый”?
Имеется ввиду номер в списке doc.tables?
Ну, можешь написать, например, так:
 import docx
doc = docx.Document('./123.docx')
for ind, t in enumerate(doc.tables):
    for ro in t.rows:
        if ro.cells[0].text=="белый" :
            break
table = doc.tables[ind]
a_cells = table.rows[0].cells
z = a_cells[3].text
Но если тебе надо сделать некое “действие” с этой таблицей, то, может быть тебе и не нужен никакой индекс?
 for t in doc.tables:
    for ro in t.rows:
        if ro.cells[0].text=="белый" :
            # Делай сразу тут всё, что надо было делать с таблицей



Отредактировано Striver (Апрель 9, 2020 14:47:41)

Офлайн

#3 Апрель 9, 2020 16:56:28

mandelshtam1
Зарегистрирован: 2020-04-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Индекс таблицы в docx

Из таблицы где в первой ячейки стоит “белый” нужно извлечь из первой строки в 3 столбце значение.

Отредактировано mandelshtam1 (Апрель 9, 2020 18:07:49)

Офлайн

#4 Апрель 9, 2020 19:04:33

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Индекс таблицы в docx

mandelshtam1
из таблицы где в первой ячейки стоит “белый” нужно извлечь из первой строки в 3 столбце значение.
Внутри if извлеки значение из третьей колонки
 if ro.cells[0].text=="белый":
    z = ro.cells[2].text
    break # завершаем цикл
После цикла поставь вывод значения z и всё.

Офлайн

#5 Апрель 10, 2020 11:05:42

mandelshtam1
Зарегистрирован: 2020-04-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Индекс таблицы в docx

Rafik
После цикла поставь вывод значения z и всё.


 import docx
from datetime import date
from openpyxl import load_workbook
doc = docx.Document('C:\pars\doc\Док.docx')
wb = load_workbook('C:\pars\doc\Ex.xlsx')
sheet = wb.active
i=2
for row in range(1,sheet.max_row):
    nom1 = sheet.cell(row = i, column = 5).value
    nom2 = sheet.cell(row = i, column = 6).value
    status = sheet.cell(row = i, column = 9).value
    skl = 'Номер 1 ' + str(nom1) + ' Номер 2 ' + str(nom2)
    for t in doc.tables:
        for ro in t.rows:
            if ro.cells[0].text==skl :
                status = ro.cells[3].text
                
wb.save('./example.xlsx')

Почему не сохраняет полученные значения в ячейку. Подскажи, что не так с циклом.

Офлайн

#6 Апрель 10, 2020 17:19:35

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Индекс таблицы в docx

Покажи строку, которая меняет содержимое хотя одной ячейки в таблице excel. Я вижу только как везде идёт чтение.

Офлайн

#7 Апрель 13, 2020 15:40:39

mandelshtam1
Зарегистрирован: 2020-04-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Индекс таблицы в docx

Исправил.
Проблемы были с входными данными.

Отредактировано mandelshtam1 (Апрель 14, 2020 12:03:33)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version