获取单元格段落而不会丢失当前样式

时间:2016-04-06 15:09:32

标签: python-docx

所以,我运行了这个功能

def get_bold_lines_from_cell(cellColumn,cellRow):
    for index,enumerate中的段落(table.cell(cellRow,cellColumn).paragraphs):
        在paragraph.runs中运行:
            如果run.bold:
                #do stuff

即使段落中填充了粗体段落,它也不会识别任何段落。它是否会失去它的风格,因为我已将docx转换为表格?无论如何得到段落风格?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果有人遇到同样的问题,这就是我提出的解决方案

for table in tables:
    cell = table._cells[cellNumber]
        for paragraphIndex, paragraph in enumerate(cell.paragraphs):
            for parentParagraphsIndex, parentParagraphs in enumerate(paragraph._parent.paragraphs):
                for run in parentParagraphs.runs:
                    tempString =  parentParagraphs.text.encode('utf-8')
                    if run.bold:
                        #do stuff
                        break
                    elif run.style.style_id == "Strong":
                        #do stuff
                        break
                    else:
                        #do stuff
                        break

答案 1 :(得分:0)

最好的办法是查看每个对象的XML以找到线索。

print paragraph._element.xml
print run._element.xml

如果应用了某个样式,您会在w:pPrw:rPr元素中看到它。