我需要使用python-docx在表格中设置单元格边框,但找不到如何操作.请帮忙.
我正在尝试使用python库python-docx在MS Word文件中编写文本.我已经在这个链接上浏览了python-docx字体颜色的文档并在我的代码中应用了相同的内容,但到目前为止还没有成功.
这是我的代码:
from docx import Document
from docx.shared import RGBColor
document = Document()
run = document.add_paragraph('some text').add_run()
font = run.font
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
p=document.add_paragraph('aaa')
document.save('demo1.docx')
Run Code Online (Sandbox Code Playgroud)
word文件'demo.docx'中的文字只是黑色.
我无法弄明白,帮助将不胜感激.
是否有在Microsoft Word(docx)文件中添加页眉和页脚的解决方法?
提供的头实现python-docx仍在开发中.
更具体地说,我想补充一下:
在理想的代码如下所示:
from docx import Document
document = Document()
# Add header and footer on all pages
document.save("demo.docx")
Run Code Online (Sandbox Code Playgroud) 当我访问段落文本时,它不包括列表中的编号。
当前代码:
document = Document("C:/Foo.docx")
for p in document.paragraphs:
print(p.text)
Run Code Online (Sandbox Code Playgroud)
docx 文件中的列表:
我期待:
(1) 两者的入籍 ...
(2) ... 的入籍
(3) ... 的入籍
我得到的结果:
两者的归化...
的归化...
的归化...
检查文档的 XML 后,列表编号存储在 w:abstructNum 中,但我不知道如何访问它们或将它们连接到正确的列表项。如何访问 python-docx 中每个列表项的编号,以便将它们包含在我的输出中?有没有办法使用 python-docx 确定这些列表的正确嵌套?
Python Docx是一个非常好的库,用于为不直接处理所有COM内容的东西生成Microsoft Word文档.尽管如此,我遇到了一些限制.
我想要一个段落有多行,而它们之间没有额外的空格.但是,写出一个用通常的线分隔线的字符串\n是行不通的.也没有使用
或
.还有其他任何想法,或者这个框架对于类似的东西来说太有限了?
我python-docx用于将Word docx转换为自定义HTML等效项.我需要转换的文档有图像和表格,但我无法弄清楚如何访问给定运行中的图像和表格.这就是我的想法......
for para in doc.paragraphs:
for run in para.runs:
# How to tell if this run has images or tables?
Run Code Online (Sandbox Code Playgroud)
...但我没有看到Run有关于InlineShape或有信息的任何内容Table.我是否必须直接回退到XML,或者是否有更好,更清晰的方法来迭代文档中的所有内容?
谢谢!
我需要帮助替换word文档中的字符串,同时保持整个文档的格式.
我正在使用python-docx,在阅读文档之后,它适用于整个段落,所以我放松了格式,如粗体或斜体字.包括要替换的文本是粗体,我想保持这种方式.我正在使用此代码:
from docx import Document
def replace_string2(filename):
doc = Document(filename)
for p in doc.paragraphs:
if 'Text to find and replace' in p.text:
print 'SEARCH FOUND!!'
text = p.text.replace('Text to find and replace', 'new text')
style = p.style
p.text = text
p.style = style
# doc.save(filename)
doc.save('test.docx')
return 1
Run Code Online (Sandbox Code Playgroud)
因此,如果我实现它并想要类似的东西(包含要替换的字符串的段落丢失其格式):
这是第1段,这是一个粗体文本.
这是第2段,我将替换旧文本
目前的结果是:
这是第1段,这是一个粗体文本.
这是第2段,我将替换新的文本
我试图在python中创建一个程序,可以在.docx文件中找到特定的单词并返回它发生的页码.到目前为止,在查看python-docx文档时,我一直无法找到如何访问页码或甚至是数字所在的页脚.有没有办法使用python-docx或甚至只是python?或者如果没有,最好的方法是什么?
有没有办法访问和操作文本框中现有 docx 文档中的文本python-docx?
我试图通过迭代在文档的所有段落中找到一个关键字:
doc = Document('test.docx')
for paragraph in doc.paragraphs:
if '<DATE>' in paragraph.text:
print('found date: ', paragraph.text)
Run Code Online (Sandbox Code Playgroud)
如果放置在普通文本中,但不在文本框中,则可以找到它。
我正在根据表单中的用户输入创建word文档.但是,当用户输入一个unicode控制字符,并尝试使用python-docx包创建一个word文件时,会发生以下错误:
File "src\lxml\apihelpers.pxi", line 1439, in lxml.etree._utf8
ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
Run Code Online (Sandbox Code Playgroud)
我设法通过在每个请求之前检查表单中的无效xml字符来解决此问题(我有许多表单可能会出现此问题),并从字段中删除任何无效的xml字符.然后我创建一个新的不可变多字典,并用清理后的文本填充它.
from docx import Document
from docx.shared import Inches
from flask import Flask, render_template_string, request
from werkzeug.datastructures import ImmutableMultiDict
def valid_xml_char_ordinal(c):
codepoint = ord(c)
return (0x20 <= codepoint <= 0xD7FF or codepoint in (0x9, 0xA, 0xD) or
0xE000 <= codepoint <= 0xFFFD or 0x10000 <= codepoint <= 0x10FFFF)
app = Flask(__name__)
@app.before_request
def before_request():
if 'check_form_xml_validity' in …Run Code Online (Sandbox Code Playgroud) python ×10
python-docx ×10
docx ×2
python-3.x ×2
flask ×1
footer ×1
header ×1
jinja2 ×1
lxml ×1
ms-word ×1
python-2.7 ×1