Форум сайта python.su
0
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
Офлайн
22
Подскажите как узнать индекс таблиц (ы) в которой встречается слово “белый”?Имеется ввиду номер в списке 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)
Офлайн
0
Из таблицы где в первой ячейки стоит “белый” нужно извлечь из первой строки в 3 столбце значение.
Отредактировано mandelshtam1 (Апрель 9, 2020 18:07:49)
Офлайн
27
mandelshtam1Внутри if извлеки значение из третьей колонки
из таблицы где в первой ячейки стоит “белый” нужно извлечь из первой строки в 3 столбце значение.
if ro.cells[0].text=="белый": z = ro.cells[2].text break # завершаем цикл
Офлайн
0
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')
Офлайн
27
Покажи строку, которая меняет содержимое хотя одной ячейки в таблице excel. Я вижу только как везде идёт чтение.
Офлайн
0
Исправил.
Проблемы были с входными данными.
Отредактировано mandelshtam1 (Апрель 14, 2020 12:03:33)
Офлайн