因此,我使用 python-docx 创建了一个文档,一切都按我的预期运行,但“作者”显示为“思科员工”。
我尝试过谷歌搜索“python-docx更改作者”和其他变体,但我找不到任何东西。
是否可以选择更改作者姓名,或者目前不可能?
我使用Python-Docx来允许我的代码用户创建表.我想改变表的字体大小.单元格值数字在表格单元格中环绕,因为字体太大.到目前为止,我已经搜索了文档和许多论坛,没有任何运气.
我假设只有表格样式可以更改,而不是字体大小,我是否正确?
我意识到我可以修改或创建自己的风格,但这对我的代码在其他计算机上的其他用户没有帮助((例如在论坛帖子中解释:如何摆脱python中的表对象的默认样式 - docx生成的word文档?))我发现的大多数其他帖子都讨论了样式,但没有讨论字体大小.
我看到一些类似的问题,人们指向使用xml,但我不明白这将如何写入标准的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带有标题的表格。目前这张桌子上没有黑色边框(内部或外部)。
如何指定标题周围的上下边框、环绕表格的下边框以及内部垂直边框?
例如:
我逐段迭代文档,然后我将每个段落文本拆分为句子.(带空格的点)。与在整个段落文本中搜索相比,我将句子中的段落文本拆分为更有效的文本搜索。
然后代码在句子的每个单词中搜索错误,错误来自纠错数据库。我在下面展示了一个简化的代码:
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 和 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 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-docx ×6
python ×5
border ×1
font-size ×1
ms-word ×1
page-break ×1
python-2.7 ×1
python-3.5 ×1
search ×1
tkinter ×1