我使用python包“python-docx”来修改MS word .docx文档的结构和内容。该包无法更新 TOC(目录)[ Python:使用 python-docx/lxml 创建“目录”。
是否有更新文档目录的解决方法?我考虑过使用 python 包“pywin32”中的“win32com.client”[ https://pypi.python.org/pypi/pypiwin32]或类似的 pypi 包,为 MS Office 提供“cli 控制”功能。
我尝试了以下方法:
我将 document.docx 更改为 document.docm 并实现了以下宏 [ http://word.tips.net/T000301_Updating_an_Entire_TOC_from_a_Macro.html]:
Sub update_TOC()
If ActiveDocument.TablesOfContents.Count = 1 Then _
ActiveDocument.TablesOfContents(1).Update
End Sub
Run Code Online (Sandbox Code Playgroud)
如果我更改内容(添加/删除标题)并运行宏,目录就会更新。我保存了文档,我很高兴。
我实现了以下 python 代码,它应该相当于宏:
import win32com.client
def update_toc(docx_file):
word = win32com.client.DispatchEx("Word.Application")
doc = word.Documents.Open(docx_file)
toc_count = doc.TablesOfContents.Count
if toc_count == 1:
toc = doc.TablesOfContents(1)
toc.Update
print('TOC should have been updated.')
else:
print('TOC has not been updated for sure...')
Run Code Online (Sandbox Code Playgroud)
update_toc(docx_file) 在更高级别的脚本中调用(它操作文档的 TOC …
doc=Document()
table = doc.add_table(rows = 13, cols = 5)
table.style = 'Table Grid'
row = table.rows[0]
row.cells[0].text = ('text').bold
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个表格并加粗文本,但无法正确获得语法
我使用 python-docx 库创建 word 文件。我希望能够将文档的不同部分设置为不同的语言。如何使用python-docx设置语言?最好是在运行级别进行,因为我需要在同一行上使用不同的语言(这是我正在创建的双语言文档)。但是,似乎没有任何语言属性用于运行,也没有用于段落。
python初学者在这里有一个简单的问题。一直在使用 Python-Docx 从 Python 数据(从 Excel 表格生成)生成一些 word 报告。到目前为止一切顺利,但想根据相关数据向 Word 文档添加几个图表。我看过 pandas 和 matplotlib ,似乎它们都可以很好地满足我的需要(只有几个条形图,没什么疯狂的)。但是谁能告诉我是否可以在python中创建图表并通过docx将其输出到word文档?
我尝试使用python-docx创建Word文档。创建的文件的字母尺寸为8.5 x 11英寸。但在德国,标准格式为A4 8.27 x 11.69英寸。
from docx import Document
from docx.shared import Inches
document = Document()
document.add_heading('Document Title', 0)
document.settings
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'
)
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'
document.add_page_break()
document.save('demo.docx') …Run Code Online (Sandbox Code Playgroud) 我想编写一个程序,从 Word 文档中复制文本并将其粘贴到另一个文档中。我正在尝试使用python-docx库来做到这一点。我可以用下面的代码做到这一点,但它不会复制粗体、斜体、下划线或彩色部分,而只是它们的文本:
from docx import Document
input = Document('SomeDoc.docx')
paragraphs = []
for para in input.paragraphs:
p = para.text
paragraphs.append(p)
output = Document()
for item in paragraphs:
output.add_paragraph(item)
output.save('OutputDoc.docx')
Run Code Online (Sandbox Code Playgroud)
我也试过将paragraph对象直接复制到输出文档中,但它也不起作用:
from docx import Document
input = Document('SomeDoc.docx')
output = Document()
for para in input.paragraphs:
output.add_paragraph(para)
output.save('OutputDoc.docx')
Run Code Online (Sandbox Code Playgroud) 如何在 MS 文档表中查找现有图像并将其替换为新图像?使用此代码,我能够找到图像的表格单元格/位置并添加新图像,但它不会替换旧图像。
from docx import Document
from docx.shared import Inches
doc = docx.Document('myWordDoc.docx')
tables = doc.tables
# Find existing image and remove it then add new image
img = tables[0].rows[0].cells[0].add_paragraph()
r = img.add_run()
r.add_picture('/tmp/foo.jpg', width=Inches(2.5))
Run Code Online (Sandbox Code Playgroud)
python-docx 模块或任何其他模块可以实现这一点吗?
有很多用于在表格中设置背景颜色的线程,但我想更改段落中一段普通文本的颜色。
我可以设置突出显示颜色,但只能选择 17 种可用颜色中的一种。
在Word中,背景颜色被称为“底纹”,通过单击油漆桶图标来完成。
虽然突出显示只会改变文本后面的颜色,但阴影会绘制整行的颜色 - 无论哪种方式对我来说都很好。
是否可以使用 python-docx 在不在表格中的文本后面设置任何 RGB 值?
我正在使用 python-docx 创建一个文档,其中包含一个我想要从文本数据填充的表。我的文字如下所示:
01:02:10.3
a: Lorem ipsum dolor sit amet,
b: consectetur adipiscing elit.
a: Mauris a turpis erat.
01:02:20.4
a: Vivamus dignissim aliquam
b: Nam ultricies
(etc.)
Run Code Online (Sandbox Code Playgroud)
我需要将其组织在这样的表格中(使用 ASCII 进行可视化):
+---+--------------------+---------------------------------+
| | A | B |
+---+--------------------+---------------------------------+
| 1 | 01:02:10.3 | a: Lorem ipsum dolor sit amet, |
| 2 | | b: consectetur adipiscing elit. |
| 3 | | a: Mauris a turpis erat. |
| 4 | ------------------ | ------------------------------- |
| 5 | …Run Code Online (Sandbox Code Playgroud)