设置 word 表格列宽是优化文档可读性和美观性的关键。合理的列宽避免了长行文字影响阅读,尤其在文本密集的表格中。word 提供了两种方法:百分比和固定值。用百分比值的设置可以让表格适应不同屏幕,保持内容整齐,提升阅读体验。用固定值的设置则可以精确地实现了表格结构控制,确保一致性与专业性,适合严格规定数据对齐或复杂布局的设计。本文将介绍如何使用 spire.doc for .net 在 c# 项目中基于百分比与固定值的设置方法来设置 word 表格列宽。
安装 spire.doc for .net
首先,您需要将 spire.doc for.net 包含的 dll 文件作为引用添加到您的 .net 项目中。dll 文件可以从此链接下载,也可以通过 安装。
pm> install-package spire.doc
c# 基于百分比设置 word 表格列宽
使用百分比值设置 word 表格列宽时需先对表格设置下百分比宽度类型,table.preferredwidth = new preferredwidth(widthtype.percentage, (short)100),然后依次遍历每个列设置相同或不同的百分比值的宽度。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 document .sections[0] 获取文档的第一个节。
- 使用 section.tables[0] 获取节中的第一个表格。
- 使用 for 循环遍历表格中的所有表格行。
- 使用 tablerow.cells[index].setcellwidth(34, cellwidthtype.percentage) 方法为不同列的单元格设置百分比值的列宽。
- 使用 document.savetofile() 方法保存到 word 文档。
- c#
using spire.doc;
namespace spiredocdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个新的document对象
document doc = new document();
// 加载名为"示例.docx"的文档
doc.loadfromfile("示例.docx");
// 获取文档的第一个section
section section = doc.sections[0];
// 将section中的第一个table转换为table类型
table table = (table)section.tables[0];
// 创建一个preferredwidth对象,设置宽度类型为百分比,并设置宽度值为100%
preferredwidth percentagewidth = new preferredwidth(widthtype.percentage, (short)100);
// 设置table的首选宽度为上面创建的preferredwidth对象
table.preferredwidth = percentagewidth;
// 定义一个tablerow类型的变量
tablerow tablerow;
// 遍历table的所有行
for (int i = 0; i < table.rows.count; i )
{
// 获取当前行
tablerow = table.rows[i];
// 设置第一列单元格的宽度为34%,类型为百分比
tablerow.cells[0].setcellwidth(34, cellwidthtype.percentage);
// 设置第二列单元格的宽度为33%,类型为百分比
tablerow.cells[1].setcellwidth(33, cellwidthtype.percentage);
// 设置第三列单元格的宽度为33%,类型为百分比
tablerow.cells[2].setcellwidth(33, cellwidthtype.percentage);
}
// 保存修改后的文档,并指定文件格式为docx2016
doc.savetofile("以百分比值设置列宽.docx", fileformat.docx2016);
// 关闭文档
doc.close();
}
}
}
c# 基于固定值设置word表格列宽
使用固定值设置 word 表格列宽时需先对表格设置固定布局,table.tableformat.layouttype = layouttype.fixed,然后依次遍历每个列设置相同或不同的固定值的宽度。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 document .sections[0] 获取文档的第一个节。
- 使用 section.tables[0] 获取节中的第一个表格。
- 使用 for 循环遍历表格中的所有表格行。
- 使用 tablerow.cells[index].setcellwidth(value, cellwidthtype.point) 方法为不同列的单元格设置固定值的列宽。
- 使用 document.savetofile() 方法保存到 word 文档。
- c#
using spire.doc;
namespace spiredocdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个新的document对象
document doc = new document();
// 加载名为"示例.docx"的文档
doc.loadfromfile("示例.docx");
// 获取文档的第一个section
section section = doc.sections[0];
// 将section中的第一个table转换为table类型
table table = (table)section.tables[0];
// 设置表格布局类型为固定
table.tableformat.layouttype = layouttype.fixed;
// 设置表格大小调整方式为非自动
table.tableformat.isautoresized = false;
// 获取左页边距
float leftmargin = section.pagesetup.margins.left;
// 获取右页边距
float rightmargin = section.pagesetup.margins.right;
// 计算页面宽度减去左右边距
double pagewidth = section.pagesetup.pagesize.width - leftmargin - rightmargin;
// 定义一个tablerow类型的变量
tablerow tablerow;
// 遍历table的所有行
for (int i = 0; i < table.rows.count; i )
{
// 获取当前行
tablerow = table.rows[i];
// 设置第一列单元格宽度为页面宽度的34%
tablerow.cells[0].setcellwidth((float)(pagewidth * 0.34), cellwidthtype.point);
// 设置第二列单元格宽度为页面宽度的33%
tablerow.cells[1].setcellwidth((float)(pagewidth * 0.33), cellwidthtype.point);
// 设置第三列单元格宽度为页面宽度的33%
tablerow.cells[2].setcellwidth((float)(pagewidth * 0.33), cellwidthtype.point);
}
// 保存修改后的文档,并指定文件格式为docx2016
doc.savetofile("以固定值设置列宽.docx", fileformat.docx2016);
// 关闭文档
doc.close();
}
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。