标签: python-docx

从.docx文件解析表

我想使用Python和python-docx将.docx文件中的表解析成一些有用的数据结构.

在我的例子中,.docx文件只包含一个表.我上传了它,所以你可以看看.这是一个截图:

Books.docx

python xml parsing docx python-docx

7
推荐指数
1
解决办法
1万
查看次数

使用 Python 更新 MS Word .docx 文档的 TOC(目录)

我使用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 …

python pywin32 win32com python-docx

7
推荐指数
1
解决办法
9793
查看次数

在python docx中创建一个表并加粗文本

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

7
推荐指数
1
解决办法
8410
查看次数

如何使用 python-docx 在文本中设置语言

我使用 python-docx 库创建 word 文件。我希望能够将文档的不同部分设置为不同的语言。如何使用python-docx设置语言?最好是在运行级别进行,因为我需要在同一行上使用不同的语言(这是我正在创建的双语言文档)。但是,似乎没有任何语言属性用于运行,也没有用于段落。

python python-docx

7
推荐指数
1
解决办法
1253
查看次数

如何将图表写入 Python DocX 文档

python初学者在这里有一个简单的问题。一直在使用 Python-Docx 从 Python 数据(从 Excel 表格生成)生成一些 word 报告。到目前为止一切顺利,但想根据相关数据向 Word 文档添加几个图表。我看过 pandas 和 matplotlib ,似乎它们都可以很好地满足我的需要(只有几个条形图,没什么疯狂的)。但是谁能告诉我是否可以在python中创建图表并通过docx将其输出到word文档?

python excel matplotlib python-docx

7
推荐指数
2
解决办法
8843
查看次数

如何在python-docx中将页面大小更改为A4

我尝试使用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)

python docx python-docx

7
推荐指数
3
解决办法
2732
查看次数

如何复制word文档的内容?

我想编写一个程序,从 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)

python styles ms-word python-docx

7
推荐指数
1
解决办法
4806
查看次数

Python-docx 查找并替换表中的图像

如何在 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 模块或任何其他模块可以实现这一点吗?

python ms-word python-docx

7
推荐指数
1
解决办法
7548
查看次数

使用 python-docx 在普通文本上设置背景颜色(阴影)

有很多用于在表格中设置背景颜色的线程,但我想更改段落中一段普通文本的颜色。

我可以设置突出显示颜色,但只能选择 17 种可用颜色中的一种。

在Word中,背景颜色被称为“底纹”,通过单击油漆桶图标来完成。

虽然突出显示只会改变文本后面的颜色,但阴影会绘制整行的颜色 - 无论哪种方式对我来说都很好。

是否可以使用 python-docx 在不在表格中的文本后面设置任何 RGB 值?

格式示例

python ms-word python-docx

7
推荐指数
1
解决办法
5826
查看次数

python-docx 将粗体和非粗体字符串添加到表中的同一单元格

我正在使用 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)

python docx python-docx

7
推荐指数
1
解决办法
763
查看次数

标签 统计

python-docx ×10

python ×9

docx ×3

ms-word ×3

excel ×1

matplotlib ×1

parsing ×1

pywin32 ×1

styles ×1

win32com ×1

xml ×1