标签: python-docx

使用Python-Docx设置字体属性

我正在使用Python-docx模块以编程方式创建word文档.

我希望能够将我的标题集中,在我创建的表格中将某些单词转换为粗体,并进行其他基本标记.

不幸的是,阅读模块中的源代码并没有给我带来很大的帮助.

我猜这与docx代码所基于的lxml/etree模块有关,但我对该库并不太熟悉.有任何想法吗?

python xml lxml ms-word python-docx

5
推荐指数
1
解决办法
562
查看次数

在python 3中解析.docx

我目前正在编写一个python 3程序,它解析某些docx文件并从中提取文本和图像.我一直在尝试使用docx,但它不会导入我的程序.我已经安装了lxml,Pillow和python-docx但它没有导入.当我尝试从终端使用python-docx时,我无法使用example-extracttext.py或example-makedocument.py,这让我相信安装没有正常运行.有没有办法可以检查这是否正确安装或是否有办法使其正常工作,以便我可以将其导入我的项目?我在Ubuntu 13.10上.

python ms-word docx python-docx

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

如何使用python在docx中查找列表?

我试图拆开一个看起来像这样的word文档:

1.0清单项目
1.1清单项目
1.2清单项目
2.0清单项目

它存储在docx中,我正在使用python-docx来尝试解析它.不幸的是,它在开始时丢失了所有编号.我正在尝试识别每个有序列表项的开头.

python-docx库也允许我访问样式,但我无法弄清楚如何确定样式是否是列表样式.

到目前为止,我一直在搞乱函数和检查输出,但标准格式是这样的:

    for p in doc.paragraphs:
        s = p.style
        while s.base_style is not None:
            print s.name
            s = s.base_style
        print s.name
Run Code Online (Sandbox Code Playgroud)

我一直在尝试搜索自定义样式,但所有结束都在"正常",而不是"ListNumber".

我已经尝试在文档,段落和运行中搜索样式而没有运气.我也试过搜索p.text,但如前所述,编号不会持续存在.

python docx python-docx

5
推荐指数
1
解决办法
1163
查看次数

Python Docx - 部分 - 页面方向

以下代码尝试使用landscape方向,但文档创建为potrait.
可以建议问题出在哪里?

from docx import Document
from docx.enum.section import WD_ORIENT

document = Document()

section = document.sections[-1]
section.orientation = WD_ORIENT.LANDSCAPE

document.add_heading('text')
document.save('demo.docx')
Run Code Online (Sandbox Code Playgroud)

当我以XML格式读回代码时

<w:document>
    <w:body>
       <w:p>
          <w:pPr>
             <w:pStyle w:val="Heading1"/>
          </w:pPr>
          <w:r>
              <w:t>TEXT</w:t>
          </w:r>
       </w:p>
       <w:sectPr w:rsidR="00FC693F" w:rsidRPr="0006063C" w:rsidSect="00034616">
           <w:pgSz w:w="12240" w:h="15840" w:orient="landscape"/>
           <w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="720" w:footer="720" w:gutter="0"/>
           <w:cols w:space="720"/>
           <w:docGrid w:linePitch="360"/>
        </w:sectPr>
    </w:body>
 </w:document>
Run Code Online (Sandbox Code Playgroud)

假设部分标签应该位于顶部而不是底部的TEXT标签之上,我不太清楚XML.

python docx orientation python-docx

5
推荐指数
2
解决办法
4561
查看次数

使用python-docx从.docx文件中提取图像位置

我正在尝试使用python-docx库从.docx文件中获取图像索引.我能够提取图像的名称,图像的高度和宽度.但不是它在word文件中的索引

import docx
doc = docx.Document(filename)
for s in doc.inline_shapes:
    print (s.height.cm,s.width.cm,s._inline.graphic.graphicData.pic.nvPicPr.cNvPr.name)
Run Code Online (Sandbox Code Playgroud)

产量

21.228  15.920 IMG_20160910_220903848.jpg
Run Code Online (Sandbox Code Playgroud)

事实上,我想知道是否有更简单的方法来获取图像名称,例如s.height.cm以cm为单位获取高度.我的主要要求是了解图像在文档中的位置,因为我需要提取图像并对其进行一些处理,然后再将图像放回到同一位置

python python-docx

5
推荐指数
2
解决办法
4427
查看次数

突出显示python中的文本并将其保存在word文件中

我正在尝试从 word 文件中获取文本并突出显示所需的文本,并且老化想要将文本保存到新的 word 文件中。

我能够使用 ANSI 转义序列突出显示文本,但我无法将其添加回 word 文件。

from docx import Document
doc = Document('t.docx')
##string present in t.docx '''gnjdkgdf helloworld dnvjk dsfgdzfh jsdfKSf klasdfdf sdfvgzjcv'''

if 'helloworld' in doc.paragraphs[0].text:    
    high=doc.paragraphs[0].text.replace('helloworld', '\033[43m{}\033[m'.format('helloworld'))


doc.add_paragraph(high)
doc.save('t1.docx')
Run Code Online (Sandbox Code Playgroud)

得到这个错误。

ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
Run Code Online (Sandbox Code Playgroud)

python-3.x python-docx

5
推荐指数
1
解决办法
3937
查看次数

使用Python接受MS Word文档中的所有更改

我希望能够接受来自Python的MS Word(.docx)文档的所有更改,最好使用python-docx模块.

我知道如何在Perl中做(参见下面的参考资料),但是想在我的Python程序中使用本机代码来做同样的事情.井

任何的想法?

use strict;
use Win32::OLE qw(in with valof OVERLOAD);
use Win32::OLE::Const 'Microsoft.Word';    # wd  constants
use Win32::OLE::Variant;
$Win32::OLE::Warn = 3;

my $true  = Variant(VT_BOOL, 1);
my $false  = Variant(VT_BOOL, 0);

use File::Spec;
use File::Basename;

## Original & New File
my $DocFile = &transform_path($ARGV[0]);
my $NewFile = ($ARGV[1] ? &transform_path($ARGV[1]) : $DocFile); 

[ -e $DocFile ] || die "*** Cannot open '$DocFile'\n";

### Transform path
sub transform_path {
    my $path = shift;

    if ( ! File::Spec->file_name_is_absolute($path) …
Run Code Online (Sandbox Code Playgroud)

python docx python-docx

5
推荐指数
1
解决办法
666
查看次数

Python-docx提取的字符串缺少单词

我无法弄清楚为什么“ Delaware”一词没有从下面的代码中提取出来。其他所有字符都会被提取。谁能提供从下面的Docx文件中提取“ Delaware”一词的代码,而无需手动更改文件?

输入:

import docx
import io
import requests

url = 'https://github.com/python-openxml/python-docx/files/1996979/Delaware_Test.docx'
file = io.BytesIO(requests.get(url).content)

for text in docx.Document(file).paragraphs:
    print(text.text)
Run Code Online (Sandbox Code Playgroud)

输出:

适用法律本协议应根据所在州的法律进行解释和解释,但不包括法律冲突规定。《联合国国际货物销售合同公约》的规定不适用于本协议。

最奇怪的部分是,如果我对文档中的“ Delaware”一词(ee.gg.,粗体/粗体,键入该词)进行任何处理然后保存,则“ Delaware”一词不再缺少下次我运行代码。但是,仅保存文件而不更改单词并不能解决问题。您可能会说解决方案是手动更改单词,但实际上我正在处理成千上万个此类文档,而手动逐个更改每个文档没有意义。

使用python-docx时缺少文档文本的答案似乎提供了可能无法提取“ Delaware”的原因,但未提供解决方案。谢谢。

python docx python-3.x python-docx

5
推荐指数
0
解决办法
330
查看次数

如何使用python-docx应用删除线

我的问题是,当我应用删除线或双删除线格式并保存文件时,它不会反映在输出文件中。

以下代码无法解决问题:

from docx import Document
document = Document()
p = document.add_paragraph()
p.add_run('Strike through the following text').strike = True
document.save('demo.docx')
Run Code Online (Sandbox Code Playgroud)

python python-docx

5
推荐指数
1
解决办法
121
查看次数

如何使用python从docx文件中提取带有超链接的文本?

我正在处理的 docx 文件有一个带有注释的超链接。

例如:https: //www.someurl.com/ddoai9101? %20dsadoi -包含学生地址的文件

https://www.someurl.com/ddoai9101?%2a1231w1 -包含学生成绩的文件

我正在尝试提取 Excel 工作表中的超链接和注释。我正在使用 python-docx 库来提取超链接和文本。但是,python-docx 库将为您提供文本或超链接。这就是我获得超链接的方式:

from docx import Document
from docx.opc.constants import RELATIONSHIP_TYPE as RT

document = Document("StudentData.docx")
rels = document.part.rels
for rel in rels:
    if rels[rel].reltype == RT.HYPERLINK:
        url = rels[rel]._target
Run Code Online (Sandbox Code Playgroud)

这就是我得到文本的方式

texts = document.paragraphs
for t in texts:
    print(t.text)
Run Code Online (Sandbox Code Playgroud)

现在的问题是文本不显示超链接,我不知道哪个评论与哪个超链接相关联。有没有办法使用 python 从 docx 文件中获取带有超链接的文本?

python docx python-docx

5
推荐指数
1
解决办法
1842
查看次数

标签 统计

python-docx ×10

python ×9

docx ×6

ms-word ×2

python-3.x ×2

lxml ×1

orientation ×1

xml ×1