调整 word 表格的列宽是提升文档视觉效果与阅读流畅度的重要手段。恰当的列宽设计,能够有效防止文本过长导致的阅读障碍,特别是在信息量大的表格中,这一点尤为重要。在 word 中,用户拥有两种灵活的调整方式来实现这一目标:基于百分比的调整和固定数值设定。选择百分比作为调整依据,能够让表格自动适应各种屏幕尺寸,保证内容排列的整洁有序,从而显著优化阅读体验。而采用固定数值进行设置,则赋予了用户对表格结构的精准掌控能力,确保了数据对齐的一致性和整体的专业感,特别适用于需要严格遵循特定格式或涉及复杂布局的文档设计场景。本文将介绍如何使用 spire.doc for python 在 python 项目中基于百分比与固定值的设置方法来设置 word 表格列宽。
安装 spire.doc for python
本教程需要用到 spire.doc for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.doc
python 基于百分比设置 word 表格列宽
当您选择使用百分比值来设置 word 表格的列宽时,首先需要确保整个表格的宽度类型被指定为百分比模式 table.preferredwidth=preferredwidth(widthtype.percentage, 100),然后依次遍历每个列设置相同或不同的百分比值的宽度。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 document.sections.get_item(0) 获取文档的第一个节。
- 使用 section.tables.get_item(0) 获取节中的第一个表格。
- 使用 for 循环遍历表格中的所有表格行。
- 使用 tablerow.cells.get_item(0).setcellwidth(value, cellwidthtype.percentage) 方法为不同列的单元格设置百分比值的列宽。
- 使用 document.savetofile() 方法保存到 word 文档。
- python
from spire.doc import *
from spire.doc.common import *
# 创建一个新的document对象
doc = document()
# 加载名为"示例.docx"的文档
doc.loadfromfile("示例.docx")
# 获取文档的第一个section
section = doc.sections.get_item(0)
# 获取ection中的第一个table
table1 = section.tables.get_item(0)
table =(table)(table1)
# 创建一个preferredwidth对象,设置宽度类型为百分比,并设置宽度值为100%
percentagewidth = preferredwidth(widthtype.percentage, 100)
# 设置table的首选宽度为上面创建的preferredwidth对象
table.preferredwidth = percentagewidth
# 遍历table的所有行
for i in range(table.rows.count):
# 获取当前行
tablerow = table.rows.get_item(i)
# 设置第一列单元格的宽度为34%,类型为百分比
tablerow.cells.get_item(0).setcellwidth(34, cellwidthtype.percentage)
# 设置第二列单元格的宽度为33%,类型为百分比
tablerow.cells.get_item(1).setcellwidth(33, cellwidthtype.percentage)
# 设置第三列单元格的宽度为33%,类型为百分比
tablerow.cells.get_item(2).setcellwidth(33, cellwidthtype.percentage)
# 保存修改后的文档,并指定文件格式为docx2016
doc.savetofile("以百分比值设置列宽.docx", fileformat.docx2016)
# 关闭文档
doc.close()
python 基于固定值设置 word 表格列宽
在使用固定值来精细化控制 word 表格列宽时,首先应确保表格的布局类型被明确设定为“固定”模式,table.tableformat.layouttype = layouttype.fixed,然后依次遍历每个列设置相同或不同的固定值的宽度。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 document.sections.get_item(0) 获取文档的第一个节。
- 使用 section.tables.get_item(0) 获取节中的第一个表格。
- 使用 for 循环遍历表格中的所有表格行。
- 使用 tablerow.cells.get_item(0).setcellwidth(value, cellwidthtype.point) 方法为不同列的单元格设置固定值的列宽。
- 使用 document.savetofile() 方法保存到 word 文档。
- python
from spire.doc import *
from spire.doc.common import *
# 创建一个新的document对象
doc = document()
# 加载名为"示例.docx"的文档
doc.loadfromfile("示例.docx")
# 获取文档的第一个section
section = doc.sections.get_item(0)
# 获取section中的第一个table
table = section.tables.get_item(0)
# 设置表格布局类型为固定
table.tableformat.layouttype = layouttype.fixed
# 设置表格大小调整方式为非自动
table.tableformat.isautoresized = false
# 获取左页边距
leftmargin = section.pagesetup.margins.left
# 获取右页边距
rightmargin = section.pagesetup.margins.right
# 计算页面宽度减去左右边距
pagewidth = section.pagesetup.pagesize.width - leftmargin - rightmargin
# 遍历table的所有行
for i in range(table.rows.count):
# 获取当前行
table_row = table.rows.get_item(i)
# 设置第一列单元格宽度为页面宽度的34%
table_row.cells.get_item(0).setcellwidth(float(pagewidth * 0.34), cellwidthtype.point)
# 设置第二列单元格宽度为页面宽度的33%
table_row.cells.get_item(1).setcellwidth(float(pagewidth * 0.33), cellwidthtype.point)
# 设置第三列单元格宽度为页面宽度的33%
table_row.cells.get_item(2).setcellwidth(float(pagewidth * 0.33), cellwidthtype.point)
# 保存修改后的文档,并指定文件格式为docx2016
doc.savetofile("以固定值设置列宽.docx", fileformat.docx2016)
# 关闭文档
doc.close()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。