使用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(
8 2024-04-02
编程技术问答社区
使用python docx库在MS Word中为书签添加链接
我已经使用了早期问题中的代码来创建超链接: 使用Python-docx 我现在想在文档中创建指向书签的链接,而不是外部超链接,但无法弄清楚如何做.有什么想法吗? 解决方案 由于Github的Neilbilly,找到了一种方法: def add_link(paragraph, link_to, text): hyperlink = docx.oxml.shared.OxmlElement('w:hyperlink') hyperlink.set(docx.oxml.shared.qn('w:anchor'), link_to, ) new_run = docx.oxml.shared.OxmlElement('w:r') rPr = docx.oxml.shared.OxmlElement('w:rPr') new_run.append(rPr) new_run.text = text hyperlink.append(new_run) r = paragraph.add_r
8 2024-04-01
编程技术问答社区
尝试安装python-docx(错误:无法找到vcvarsall.bat)。
我已经尝试了一切,我不知道该从这里去哪里.当我调用命令pip install python-docx时,我得到了: running build_ext building 'lxml.etree' extension error: Unable to find vcvarsall.bat ---------------------------------------- Command "c:\users\alex\appdata\local\programs\python\python35-32\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\Alex\\AppData\\Local\\Temp\\pip-build-u2i_l872\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().re
8 2024-03-29
编程技术问答社区
无法使用DOCX添加base64编码图像到Word文档
我需要使用Python-docx模块将图像添加到Word文档中.从base64编码的数据转换为base64字节,然后转换为图像流.现在我尝试将图像流添加到Word文档中. import io from docx import Document from docx.shared import Inches base64_img = 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAA' \ 'LEwEAmpwYAAAB1klEQVQ4jY2TTUhUURTHf+fy/HrjhNEX2KRGiyIXg8xgSURuokX' \ 'LxFW0qDTaSQupkHirthK0qF0WQQQR0UCbwCQyw8KCiDbShEYLJQdmpsk3895p4aS' \ 'v92ass7pcfv/zP+fcc4U6kXKe2pTY3tjSUHjt
20 2024-03-27
编程技术问答社区
使用python-docx的加粗、下划线和迭代功能
我正在编写一个程序,以从ASCII文件中获取数据,并将数据放在Word文档中的适当位置,并仅使特定的单词粗体和下划线.我是Python的新手,但是我在MATLAB编程方面拥有丰富的经验.我的代码是: #IMPORT ASCII DATA AND MAKE IT USEABLE #Alternatively Pandas - gives better table display results import pandas as pd data = pd.read_csv('203792_M-51_Niles_control_SD_ACSF.txt', sep=",", header=None) #print data #data[1][3] gives value at particular data points within matrix i=len(data[1]) print 'Number of Points imported =', i #IMPORT WORD DO
0 2024-03-07
编程技术问答社区
python docx在同一行中向左和向右对齐
这是我的第一个问题,要提前感谢大家的任何帮助.我是Python,Python-Docx和编程的新手.我正在制定GUI计划(使用PYQT),以DOCX格式生成合同.我的大多数事情都在起作用,但这是我遇到的问题.我需要在同一行上左右与文本对齐.在言语中,我相信这是通过更改为正确的缩进和击中选项卡,然后添加文本来完成的.但是,我无法弄清楚如何在Python-Docx中做到这一点.我尝试了: paragraph = document.add_paragraph() paragraph.add_run('SOME TEXT') paragraph.alignment = 0 paragraph.add_run('SOME OTHER TEXT') paragraph.alignment = 2 但这无效.根据文档,我尝试了其他一些想法,例如enum wd_paragraph_alignment,但没有任何效用. 这可以在Python-docx(IM使用0.8.5)? 中进行.
56 2024-01-24
编程技术问答社区
如何从一个DOCX文件中按页编写独立的DOCX文件?
我有一个由数百页组成的MS Word文档. 除了每个页面唯一的人的名字外,每个页面都是相同的. (一页是一个用户). 我想使用此Word文档并自动化该过程以分别保存每个页面,因此我最终得到了几百个Word文档,一个用于每个人,而不是一个由每个人组成的文档,然后我可以将其分发到不同的人. 我一直在使用模块python-docx在此处找到: https://docx.readthedocs.io/en/latest/ 我在如何完成这项任务上挣扎. 据我所研究,由于未确定.docx文件本身,而是由程序(即Microsoft Word. 但是,python-docx可以解释文本,由于每个页面都是相同的此后的任何内容都是新页面. 理想情况下,如果我可以编写一个可以考虑这样的循环并创建文档,直到那时,并重复所有将会很棒的页面.它也需要进行所有格式/图片. 我不反对其他方法,例如如果是一个选项,请先转换为PDF. 有什么想法吗? 解决方案 我遇
12 2023-12-22
编程技术问答社区
在word文档中查找新的一页
如何识别一个新页面或使用Python-docx表示页码的一些标识符?到目前为止,我已经仔细研究了文档,还尝试寻找WD_Break.page属性,但此功能尚未支持.感谢所有帮助. 解决方案 简短的答案是,您无法可靠地确定从.docx文件中断的软页面.您 can 识别硬页面中断,并且您可能能够检测到上次"流"文档时单词打破的地方. Word文档是一个"流"文档,这意味着Word的布局引擎"将"文档的文本"流到页面上,直到它耗尽了房间,然后创建一个新页面,然后将其流入其余文本.这些"软"页面断路未在.docx文件中指定;它们是在渲染时通过单词确定的,无论是用于显示还是打印.这是有道理的,因为每当您更改时,边距时,页面可能会在不同的位置中断. 这意味着.docx文件不包含标记识别以下文本应流向新页面的位置. 艰苦的页面断开是文档作者明确插入的一个,即导致以下内容流入新页面,而无需考虑当前页面是否已满.我相信在运行中使用断路元素对这些遗漏,并且可以检测到. 作为辅助
18 2023-12-22
编程技术问答社区
我如何在python中的word docx中替换整个XML元素,就好像它们是字符串一样
我的Word文档包含几个未记录为文本的符号字体线. 当我使用python-docx查看基础XML时,我可以看到未打印的行看起来像这样: ,但是Python-docx完全忽略了W:SYM标签.当我提取文本时,好像他们根本不在那儿一样.这意味着我不能只找到并用正确的格式替换符号.在提取文档中的表和文本之前,我需要能够替换它们. 我如何将上述树元素变成 w:t 这样的版本: ≥ 我很好地设置了一个词典以替换全线.我只是无法分解XML文件. 解决方案 这不受python-docx API的支持.您需要以另一种方式编辑XML. python-docx可以以lxml.etree._Element对象的形式使您访问XML元素()段,然后您可以使用该API来操纵其子女.基本想法是在找到w:sym元素的任何地方插入新的元素,然后删除w:sym元素.
8 2023-12-22
编程技术问答社区
如何在Python-docx中获得单元格背景颜色?
我正在尝试使用Python-docx从MS Word表读取数据. 有一种设置表单元格的背景颜色的方法: tcPr = cell._tc.get_or_add_tcPr() shd = OxmlElement("w:shd") shd.set(qn("w:fill"), rgb2hex(*color)) tcPr.append(shd) 我的任务是相反的,我需要获得现有的颜色.我不熟练XML,我尝试了: cell = table.cell(row, col) tcPr = cell._tc.get_or_add_tcPr().get(qn('w:shd')) 无论它的颜色如何,它如何返回我无. 解决方案 AS Scanny 提议,我使用了解析cell._tc.xml: pattern = re.compile('w:fill=\"(\S*)\"') match = pattern.search(cell._tc.xml) result = match.gr
10 2023-12-22
编程技术问答社区
如何将XML Word文档转换为DOCX?
我获得了一系列文件夹,其中包含.xml格式的大量Word文档.它们每个都包含一些VBA代码,但是所有这些代码已经运行,因此我不需要保留此代码. 我需要在每个文件夹中打印所有文件,但是由于网络上XML文件的限制,我不能简单地从Windows Explorer质量打印它们,因此我需要将它们转换为.docx(或.doc)首先. 我该怎么做?我尝试了一个简单的Python脚本使用Python-docx: import os from docx import Document folderPath= fileNamesList=os.listdir(folderPath) for xmlFileName in fileNamesList: currentDoc=Document(os.path.join(folderPath,xmlFileName)) docxFileName=xmlFileName.replace('.xml','.do
22 2023-12-22
编程技术问答社区
编辑文档页眉内容 Python-docx
我试图在文档的标题中找到并替换文本框中的文本.但是在搜索了一段时间之后,似乎无法通过python-docx访问标题或" float"文本框中的内容(我阅读esloade 在这里) 因此,这意味着我们必须以文档的XML格式直接查找和替换.你知道这是这样做的吗? 解决方案 我找到了一种解决此问题的方法.例如,我有一个template.docx文件,如上所述,我想在中更改标题的文本框.下面的流步骤,我解决了我的问题: 重命名文件template.docx template.zip unzip template.zip to template文件夹 查找并替换我想在/template/word/文件夹中的一个文件之一中更改文本. /template文件夹中的所有文件to template.zip 重命名template.zip回到template.docx 我用python操纵这些 import os import shutil import zipfil
24 2023-12-21
编程技术问答社区
在python-docx中修改XML.
我想修改边框的颜色,然后通过调用style._element.xml来获得其XML: >>> document = Document() >>> run = document.add_heading(u'', 0).add_run('hello world') >>> paragraphs = document.paragraphs >>> print(paragraphs[0].style._element.xml)
10 2023-12-21
编程技术问答社区
解析.docx文件中的表格
我想使用python和 python-docx 进入一些有用的数据结构. .docx文件在我的情况下仅包含一个表.我上传它,以便您可以看一下.这是一个屏幕截图: 解决方案 您可以使用下面的摘要将文档解析到列表中,其中每一行是一个字典将表标头值映射到列值. from docx.api import Document # Load the first table from your document. In your example file, # there is only one table, so I just grab the first one. document = Document('Books.docx') table = document.tables[0] # Data will be a list of rows represented as dictionaries # containing each row's data. data = []
14 2023-12-21
编程技术问答社区
如何使用 python-docx 在 .docx 文件中插入一个复选框表单?
我一直在使用python实现自定义解析器,并使用该数据解析数据以格式化以内部分发的Word文档.到目前为止,所有格式都很简单易用,但我完全在如何将复选框插入单个表单元格中. 我尝试使用python docx中的python对象函数(使用get_or_add_tcPr()等),这会导致MS Word在我尝试打开文件时抛出以下错误,"文件xxxx不能打开,因为内容详细信息存在问题:文件已损坏,无法打开". 挣扎了一段时间后,我搬进了第二种方法,涉及操纵输出文档的word/document.xml文件.我已经检索了我认为保存为replacementXML的复选框的正确XML,并已将填充物文本插入单元格中,以充当可以搜索和替换的标签,searchXML.以下内容似乎在Linux(Fedora 25)环境中使用Python运行,但是当我尝试打开文档时,Word文档会显示相同的错误,但是这次文档可以恢复并恢复为填充文本.我已经能够将其与手动制作的文档一起使用,并使用一个空的表单元格,因此
100 2023-12-21
编程技术问答社区
使用 xlsxwriter 将表格从 Word (.docx) 写入 Excel (.xlsx)
我正在尝试解析表(.docx)的表格,然后使用XLSXWRITER将这些表复制到Excel. 这是我的代码: from docx.api import Document import xlsxwriter document = Document('/Users/xxx/Documents/xxx/Clauses Sample - Copy v1 - for merge.docx') tables = document.tables wb = xlsxwriter.Workbook('C:/Users/xxx/Documents/xxx/test clause retrieval.xlsx') Sheet1 = wb.add_worksheet("Compliance") index_row = 0 print(len(tables)) for table in document.tables: data = [] keys = None for i, row in enum
10 2023-12-20
编程技术问答社区
使用Python为xlsx提供 "最后修改者"(用户名,而不是时间)属性
我需要能够使用Python查看XLSX文件的"最后修改"属性.我已经可以为DOCX文件做,并希望该体系结构足够相似,可以在其他Office应用程序上使用,但不幸的是没有.有人知道XLSX的类似模块吗? 这是使用python-docx查看字段的脚本: from docx import Document import docx document = Document('mine.docx') core_properties = document.core_properties print(core_properties.last_modified_by) 我在这里使用Python 3.4和Docx 0.8.6. 解决方案 对于.xlsx文件,您可以使用此(set filename到.xlsx文件的名称): import xml.etree.ElementTree import xml.etree.cElementTree as ET import zipfil
16 2023-12-20
编程技术问答社区
用 Python 更新 MS Word .docx 文档的 TOC(内容表
我使用Python软件包" Python-docx"来修改MS Word .Docx文档的结构AMD内容. The package lacks the possibility to update the TOC (table of content) [ python:用python-docx/lxml 创建"目录". 有能力更新文档的TOC吗?我考虑使用python软件包" pywin32"的" win32com.client" [我尝试了以下内容: 我将document.docx更改为document.docm,并实现了以下宏[Sub update_TOC() If ActiveDocument.TablesOfContents.Count = 1 Then _ ActiveDocument.TablesOfContents(1).Update End Sub 如果我更改内容(添加/删除标题)并运行宏,则TOC已更新.我保存了文档,我很高兴. i实现以下pyth
10 2023-12-04
编程技术问答社区
如何使DOCX文件渲染/加载/添加并保留所有W:LastrenderedPageBreak
我目前正在处理DOCX文件,并且我正在使用W:LastrenderedPageBreak作为每个页面内容的标记.我有必要确定页面是否已经结束. 我当前的代码是这样的: from docx import Document document = Document(file) for p in document.paragraphs: if 'lastRenderedPageBreak' in p._element.xml: # do something # rest of code here 现在我遇到的问题是一个只有4页的DOCX文件具有2个:lastrenderedpagebreak标签.我尝试打开DOCX文件并保存它,但是W:LastrenderedPageBreak不会增加. w:lastrenderedpagebreak唯一可以正确显示页面中断的时间是我打开docx文件并将其保存为xml文件时. 有什么方法可以跳过保存作为XML零件,以
12 2023-11-16
编程技术问答社区