如何使用python-docx复制所有表?

时间:2014-12-02 22:30:48

标签: python copy docx xlsx

我使用python-docx库,我有一个名为file.docx的文档。我需要将.docx表的所有内容复制到file.xlsx

我的代码是

from docx import *
f = open('file.docx')
d = Document(f)
ts = d.tables[1]
print ts
<docx.table.Table object at 0xb691f7ac>

但是,<docx.table.Table object at 0xb691f7ac>不包含内容。我怎样才能得到表格的内容?

2 个答案:

答案 0 :(得分:0)

您应该尝试以下方法:

from docx import *
f = open('file.docx')
document = Document(f)
tableList=document.xpath('//w:tbl', namespaces=document.nsmap)
print tableList

灵感来自Extracting tables from a DOCX Word document in python

答案 1 :(得分:0)

我遇到了类似的问题,我必须生成一个多页文档,其中每个页面都有相同的表,但内容不同。

我继续这样做:

def _combine_docx(documents):
    '''
    Takes a list of docx.Documents and performs a deepcopy on the
    first table in each document and adds the copies successively to
    the first document in the list.
   '''
if not documents or len(documents) == 0:
    return docx.Document()
if len(documents) == 1:
    return documents[0]

merged_document = documents[0]
p = merged_document.paragraphs[0]
for doc in documents[1:]:
    doc_table = doc.tables[0]

    new_tbl = deepcopy(doc_table._tbl)
    p._p.addnext(new_tbl)

return merged_document