python 如何从函数创建表并添加到docx文档

new9mtju  于 2023-01-01  发布在  Python
关注(0)|答案(1)|浏览(104)

我有一个工作代码,它使用for循环构建一个包含几个表的文档。为了保持代码干净,我想将表的创建分解为它自己的函数,但无法从API文档中看到如何做到这一点。
本质上,我想调用一个函数来创建&返回一个Table()对象,然后将其添加到文档中。
这可行吗?

# this works fine

from docx import Document, document, table

document = Document()

table1 = document.add_table(rows=1, cols=4)
     # more table1 building code here

table2 = document.add_table(rows=1, cols=4)
     # more table2 building code here 

document.save('foo.docx')

但是像下面这样的重构不会生成-我得到TypeError:表.init()获得意外的关键字参数“rows”

from docx import Document, document, table

document = Document()

document.add_table(build_mytable(somedata))
document.add_table(build_mytable(someotherdata))


def build_mytable(mydata):
    table = docx.table.Table(rows=1, cols=4)
    # more table building code here
    return table
yc0p9oo0

yc0p9oo01#

也许你可以试试这个

from docx import Document 

def create_table(document):
    #this code creates a table with 2 rows and 2 columens 
    table = document.add_table(rows = 2 , cols = 2)
    #adding headers rows 
    hdr_cells = table.rows[0].cells
    hdr_cells[0].text = 'Item'     
    hdr_cells[1].text = 'quantity'
    
    #second riw 
    row_cells = table.add_row().cells 
    row_cells[0].text = 'Apple'
    row_cells[1].text = '10'

document = Document()
create_table(document)
#save the file 
document.save('tableName.docx')

然后可以使用add_paragraph方法添加更多文本或其他元素;或add_table方法添加更多表
欲了解更多信息,请访问;访视https://python-docx.readthedocs.io/en/latest/

相关问题