替换 Python 中 docx 表中的文本 3
Replace text in docx tables in Python 3
我正在使用 python-docx 并尝试替换 table 保存样式中的文本。
that's how my table looks
我已经用这个替换了段落:
from docx import Document
def replace_string(doc, to_replace, replacement):
for p in doc.paragraphs:
if to_replace in p.text:
inline = p.runs
for i in range(len(inline)):
if to_replace in inline[i].text:
text = inline[i].text.replace(to_replace, replacement)
inline[i].text = text
return 1
但它不适用于 tables 和单元格。我也试过这个:
def replace_in_table(doc, to_replace, replacement):
for table in doc.tables:
for cell in table.cells:
for p in cell.paragaphs:
if to_replace in p.text:
inline = p.runs
for i in range(len(inline)):
if to_replace in inline[i].text:
text = inline[i].text.replace(to_replace, replacement)
inline[i].text = text
return 1
但是我有一个 AttributeError:'Table' 对象没有属性 'cells'。
请帮我解决这个问题
看看他们的 docs 你可能需要做这样的事情:
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
...
我正在使用 python-docx 并尝试替换 table 保存样式中的文本。 that's how my table looks
我已经用这个替换了段落:
from docx import Document
def replace_string(doc, to_replace, replacement):
for p in doc.paragraphs:
if to_replace in p.text:
inline = p.runs
for i in range(len(inline)):
if to_replace in inline[i].text:
text = inline[i].text.replace(to_replace, replacement)
inline[i].text = text
return 1
但它不适用于 tables 和单元格。我也试过这个:
def replace_in_table(doc, to_replace, replacement):
for table in doc.tables:
for cell in table.cells:
for p in cell.paragaphs:
if to_replace in p.text:
inline = p.runs
for i in range(len(inline)):
if to_replace in inline[i].text:
text = inline[i].text.replace(to_replace, replacement)
inline[i].text = text
return 1
但是我有一个 AttributeError:'Table' 对象没有属性 'cells'。 请帮我解决这个问题
看看他们的 docs 你可能需要做这样的事情:
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
...