标签: python-docx

python-docx 更改“作者”元数据

因此,我使用 python-docx 创建了一个文档,一切都按我的预期运行,但“作者”显示为“思科员工”。

我尝试过谷歌搜索“python-docx更改作者”和其他变体,但我找不到任何东西。

是否可以选择更改作者姓名,或者目前不可能?

python-2.7 python-docx

0
推荐指数
1
解决办法
3808
查看次数

Python-Docx表 - 改变字体的方法?

我使用Python-Docx来允许我的代码用户创建表.我想改变表的字体大小.单元格值数字在表格单元格中环绕,因为字体太大.到目前为止,我已经搜索了文档和许多论坛,没有任何运气.

我假设只有表格样式可以更改,而不是字体大小,我是否正确?

我意识到我可以修改或创建自己的风格,但这对我的代码在其他计算机上的其他用户没有帮助((例如在论坛帖子中解释:如何摆脱python中的表对象的默认样式 - docx生成的word文档?))我发现的大多数其他帖子都讨论了样式,但没有讨论字体大小.

我看到一些类似的问题,人们指向使用xml,但我不明白这将如何写入标准的docx表代码.

任何帮助或见解非常感谢!

python font-size python-docx

0
推荐指数
1
解决办法
3756
查看次数

使用 python-docx 在表格中指定边框外观

我正在阅读python-docx的教程和文档。

但是,我找不到任何关于如何指定和操作在 Microsoft Word 文档中创建的表格的边框外观的参考。

当我使用以下代码时:

from docx import Document
from docx.shared import Inches

document = Document()

################################
################################
################################

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'

row_cells = table.add_row().cells
row_cells[0].text = 'Str0'
row_cells[1].text = 'Str1'
row_cells[2].text = 'Str2'

row2_cells = table.add_row().cells
row2_cells[0].text = 'Str00'
row2_cells[1].text = 'Str11'
row2_cells[2].text = 'Str22'

################################
################################
################################

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

生成的docx文件显示3x3带有标题的表格。目前这张桌子上没有黑色边框(内部或外部)。

如何指定标题周围的上下边框、环绕表格的下边框以及内部垂直边框?

例如:

在此处输入图像描述

python ms-word border python-docx

0
推荐指数
2
解决办法
5512
查看次数

Python-docx:识别段落中的分页符

我逐段迭代文档,然后我将每个段落文本拆分为句子.(带空格的点)。与在整个段落文本中搜索相比,我将句子中的段落文本拆分为更有效的文本搜索

然后代码在句子的每个单词中搜索错误,错误来自纠错数据库。我在下面展示了一个简化的代码:

from docx.enum.text import WD_BREAK

for paragraph in document.paragraphs:
    sentences = paragraph.text.split('. ') 
    for sentence in sentences:
        words=sentence.split(' ')
        for word in words:
            for error in error_dictionary:
                 if error in word:
                     # (A) make simple replacement
                     word = word.replace(error, correction, 1)
                     # (B) alternative replacement based on runs 
                     for run in paragraph.runs:
                         if error in run.text:
                               run.text = run.text.replace(error, correction, 1)
                         # here we may fetch page break attribute and knowing current number …
Run Code Online (Sandbox Code Playgroud)

python search page-break python-docx

0
推荐指数
1
解决办法
4897
查看次数

python 中的 .doc 到 .docx 转换

我一直在尝试使用 python 和 win32com 客户端将多个文件从 .doc 保存到 .docx (这样我就可以使用 python docx 程序编辑它们)我运行下面的代码并得到“已完成,没有错误并退出” pycharm 中的“0”代码。这是我第一次接触 Python。

运行后出现 0 个错误,但文档仍然都是 .doc

from glob import glob
import re
import os
import win32com.client as win32
from win32com.client import constants

paths = glob('C:\test\*.doc', recursive=True)

def save_as_docx(path):
   
    word = win32.gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(path)
    doc.Activate ()
    
    
    new_file_abs = os.path.abspath(path)
    new_file_abs = re.sub(r'\.\w+$', '.docx', new_file_abs)
    
    
    word.ActiveDocument.SaveAs(
        new_file_abs, FileFormat=constants.wdFormatXMLDocument
    )
    doc.Close(False)

for path in paths:
    save_as_docx(path)
Run Code Online (Sandbox Code Playgroud)

之后我得到

“进程已完成,退出代码 0”并且所有文件仍然是 C:\test 文件夹中的 .doc。

python python-docx

0
推荐指数
1
解决办法
3286
查看次数

将txt文件信息插入docx

我正在使用 python 3.5、python-docx 和 TKinter。有没有办法能够在输入框中输入 .txt 文件名,并让 python 将该 .txt 文件的内容插入到 docx 中的特定位置?我知道如何从 tkinter 中的输入框获取信息以及如何将它们转换为字符串。

我希望能够在输入框中输入某人的姓名(这也是文本文件的名称),并让 python 插入 .txt 文件的内容。

谢谢

这里更新是我正在尝试的代码

from tkinter import *
from tkinter import ttk
import tkinter as tk
from docx import Document
root=Tk()

def make_document():
    testbox=ProjectEngineerEntry.get()
    TestBox=str(testbox)

    def projectengineer():
        with open(+TestBox+'.txt') as f:
            for line in f:
                document.add_paragraph(line)
    document=Document()

    h1=document.add_heading('engineer test',level=1)
    h1a=document.add_heading('Project Engineer',level=2)
    projectengineer()

    document.save('test.docx')

notebook=ttk.Notebook()
notebook.pack(fill=BOTH)
frame1=ttk.Frame(notebook)
notebook.add(frame1,text='Tester',sticky=W)
tester1=Label(frame1,text='Test1')
ProjectEngineerEntry=Entry(frame1)
tester1.pack()
ProjectEngineerEntry.pack()
save=Button(frame1,text='Save',command=make_document).pack()
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我试图从输入框中获取信息,将其转换为字符串,然后使用该字符串打开具有该特定名称的文本文件。然而我不断得到

TypeError:一元 + 的操作数类型错误:'str'

我不明白这是怎么回事。在实际文档中,我在保存文件时使用了 ++ 方法(将其另存为当前日期和时间)。

python tkinter python-docx python-3.5

-1
推荐指数
1
解决办法
2792
查看次数