Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在添加段落文本时,如何使用python docx删除Word标题中的新行?_Python_Python Docx - Fatal编程技术网

在添加段落文本时,如何使用python docx删除Word标题中的新行?

在添加段落文本时,如何使用python docx删除Word标题中的新行?,python,python-docx,Python,Python Docx,我已成功地将文本和图像添加到Word标题中的两个单元格表中 section = document.sections[0] header = section.header htable = header.add_table(1, 2, Inches(6)) htab_cells = htable.rows[0].cells ht0 = htab_cells[0] ht1 = htab_cells[1] ht0.paragraphs[0].text = 'Test project' run

我已成功地将文本和图像添加到Word标题中的两个单元格表中

section = document.sections[0]
header = section.header

htable = header.add_table(1, 2, Inches(6))

htab_cells = htable.rows[0].cells

ht0 = htab_cells[0]
ht1 = htab_cells[1]

ht0.paragraphs[0].text = 'Test project'
run = ht1.paragraphs[0].add_run()
run.add_picture('app/static/images/logo.png', width=Inches(1))
ht1.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.RIGHT

但是,问题是pythondocx将我的文本放在新行的左列

如何删除第一个添加的段落行?

空白(新创建的)部分包含空段落。这类单词(称为“故事”)必须始终包含至少一个段落,否则它无效,并将在加载时触发修复错误

因此,问题是如何避免表格出现在该段之后

第一个答案,也是我最喜欢的一个,就是避免使用桌子。您似乎只是为了对齐而使用它,而使用制表符做得更好有多种原因,其中一个原因是它避免了由于表格内部单元格边距而导致的小偏差

此处的文档中描述了此过程:

基本上,您可以在单个现有段落中添加制表符,并使用制表符将徽标与标题分开。如果使用右对齐的选项卡,徽标将与右边距对齐

from docx.enum.text import WD_TAB_ALIGNMENT

paragraph = section.paragraphs[0]
tab_stops = paragraph.paragraph_format.tab_stops
tab_stops.add_tab_stop(Inches(6.5), WD_TAB_ALIGNMENT.RIGHT)

paragraph.text = "My Header Title\t"  # ---note trailing tab char---
run = paragraph.add_run()
run.add_picture("my-logo")
如果确实必须使用表格,则需要在添加表格之前删除空段落,然后再将其添加回:

paragraph = header.paragraphs[0]
p = paragraph._p  # ---this is the paragraph XML element---
p.getparent().remove(p)
header.add_table(...)
...
header.add_paragraph()

使用标签似乎是一个更好的解决方案。但是,你能告诉我这个截面变量是什么吗。如何访问该部分?您的意思是该节实际上是节=文档。节[0]。标题吗?什么是风格?另外,您的意思是tab_stops var必须定义为tab_stops=段落.样式.段落\u格式.tab_stops吗?
section
与上面代码中显示的
document.sections[0]
或任何具有要设置的标题的节相同<代码>样式应该是
段落
,抱歉,修正了这个问题。