设置 Word 表格列宽是优化文档可读性和美观性的关键。合理的列宽避免了长行文字影响阅读,尤其在文本密集的表格中。Word 提供了两种方法:百分比和固定值。用百分比值的设置可以让表格适应不同屏幕,保持内容整齐,提升阅读体验。用固定值的设置则可以精确地实现了表格结构控制,确保一致性与专业性,适合严格规定数据对齐或复杂布局的设计。本文将介绍如何使用 Spire.Doc for .NET 在 C# 项目中基于百分比与固定值的设置方法来设置 Word 表格列宽。
安装 Spire.Doc for .NET
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
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 天的临时许可证。