gpt4 book ai didi

python - 0.8.8 之前的版本创建页眉和页脚

转载 作者:太空狗 更新时间:2023-10-29 20:26:58 24 4
gpt4 key购买 nike

是否有在 Microsoft Word (docx) 文件中添加页眉和页脚的解决方法?

python-docx 0.8.8 之前的版本没有实现这些。

更具体地说,我想补充:

  1. 页码到页脚
  2. 标题的一些随机文本

理想的代码如下所示:

from docx import Document

document = Document()

# Add header and footer on all pages

document.save("demo.docx")

最佳答案

模板方法行之有效,其主要优势在于它是一个真正跨平台 的解决方案。但是,它要求样式已经在文档中应用过一次

让我们考虑来自 python-docx 的玩具示例的(简化)版本 documentation page .

第一步涉及创建模板文档:

from docx import Document

document = Document()

document.add_heading('Document Title', 0)

p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='IntenseQuote')

document.add_paragraph(
'first item in unordered list', style='ListBullet'
)
document.add_paragraph(
'first item in ordered list', style='ListNumber'
)

document.save('demo.docx')

(请注意,您也可以在第一步中手动应用样式,而无需使用 Word 中的 python-docx。)

接下来,您在 Microsoft Word 中打开此 demo.docx,您可以:

  1. 添加所需的标题
  2. 从菜单中插入页码
  3. 保存文件

完成上述操作后,只需删除 demo.docx 文档的主要内容(但不包括页眉和页脚的内容!)并再次保存文件。

在第二步中,您使用 python-docx 调用 demo.docx 进行所需的更改:

from docx import Document

document = Document('demo.docx')

document.add_heading('A New Title for my Document', 0)

p = document.add_paragraph('A new paragraph having some plain ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('New Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='IntenseQuote')

document.add_paragraph(
'first new item in unordered list', style='ListBullet'
)
document.add_paragraph(
'first new item in ordered list', style='ListNumber'
)

document.save('demo.docx')

您甚至可以添加更多内容,例如具有现有表格样式的表格:

from docx import Document

document = Document('demo.docx')

document.add_page_break()

recordset = [ [1, "101", "Spam"], [2, "42", "Eggs"], [3, "631", "Spam, spam, eggs, and spam"]]

table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'

for item in recordset:
row_cells = table.add_row().cells
row_cells[0].text = str(item[0])
row_cells[1].text = str(item[1])
row_cells[2].text = item[2]

table.style = 'ColorfulShading'

document.save('demo.docx')

当然,可以避免一直重复第一步,通过copying the customized file然后在不影响模板的情况下进行必要的更改(例如 demo_copy.docx):

import shutil
shutil.copyfile('demo.docx', 'demo_copy.docx')

最后,值得一提的是,您还可以使用自定义样式!有关如何使用 python-docx 和表格样式执行此操作的示例 see here .

关于python - 0.8.8 之前的版本创建页眉和页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50767910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com