Найти - Пользователи
Полная версия: Индекс таблицы в docx
Начало » Python для новичков » Индекс таблицы в docx
1
mandelshtam1
 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

Подскажите как узнать индекс таблиц (ы) в которой встречается слово “белый”?
Striver
Подскажите как узнать индекс таблиц (ы) в которой встречается слово “белый”?
Имеется ввиду номер в списке 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=="белый" :
            # Делай сразу тут всё, что надо было делать с таблицей
mandelshtam1
Из таблицы где в первой ячейки стоит “белый” нужно извлечь из первой строки в 3 столбце значение.

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

Почему не сохраняет полученные значения в ячейку. Подскажи, что не так с циклом.
Rafik
Покажи строку, которая меняет содержимое хотя одной ячейки в таблице excel. Я вижу только как везде идёт чтение.
mandelshtam1
Исправил.
Проблемы были с входными данными.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB