要解决 table 无边框的问题,可以在创建 table 时指定 table 的样式。

在使用 self.subdoc.add_table() 方法创建 table 时,可以通过参数 style 指定 table 的样式。style 的类型可以是一个字符串,也可以是一个 TableStyle 对象。

  • 如果 style 是一个字符串,那么它表示预定义的 table 样式。可以在 docxtpl 的源码中找到这些预定义样式的定义,例如 "Table Grid" 就是一个预定义的有边框的样式。
  • 如果 style 是一个 TableStyle 对象,那么可以通过该对象的属性来设置 table 的样式。TableStyle 对象可以通过 docx.shared 模块中的 TableStyle 类来创建。

以下是一个示例代码,展示了如何创建有边框的 table:

from docx import Document
from docx.shared import Pt
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml

# 创建一个有边框的 table 样式
table_style = TableStyle("Table Grid")

# 创建 DocxTemplate 对象
tpl = DocxTemplate("aaa.docx")
subdoc = tpl.new_subdoc()

# 创建 table
table = subdoc.add_table(rows=3, cols=3, style=table_style)

# 设置 table 的样式
table.style.font.size = Pt(12)
table.style.font.name = "Arial"

# 在 table 中添加数据
table.cell(0, 0).text = "Cell 1"
table.cell(0, 1).text = "Cell 2"
table.cell(0, 2).text = "Cell 3"
table.cell(1, 0).text = "Cell 4"
table.cell(1, 1).text = "Cell 5"
table.cell(1, 2).text = "Cell 6"
table.cell(2, 0).text = "Cell 7"
table.cell(2, 1).text = "Cell 8"
table.cell(2, 2).text = "Cell 9"

# 保存 DocxTemplate
tpl.save("output.docx")

希望以上解答能够帮助到你

在 docxtpl 使用 DocxTemplate 的过程中 创建对像 selftpl = DocxTemplateaaadocx selfsubdoc = selftplnew_subdoc 在selfsubdoc创建一个talbe最多保存数据时发现table无边框。请问怎么解决并解释一下add_table 中 参数 style 的类型

原文地址: https://www.cveoy.top/t/topic/ieJi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录