首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用C#代码设置 Word 表格的列宽

使用C#代码设置 Word 表格的列宽

原创
作者头像
用户12401097
发布2026-06-17 11:33:54
发布2026-06-17 11:33:54
2080
举报

设置 Word 表格的列宽对于提升文档的可读性和整体美观度至关重要。合理的列宽能够避免文本过长导致阅读困难,尤其是在内容较多的表格中。Word 提供了两种常见的列宽设置方式:按百分比设置和按固定值设置。

使用百分比设置列宽时,表格能够根据页面或窗口大小自动调整布局,使内容保持整齐排列,从而提升阅读体验。而使用固定值设置列宽,则可以更精确地控制表格结构,确保版式一致性和专业性,特别适用于对数据对齐要求较高或布局较为复杂的文档。

本文将介绍如何在 C# 项目中设置 Word 表格的列宽。

准备开发环境

在开始之前,您需要在 .NET 项目中添加用于操作 Word 文档的相关库。您可以通过下载 DLL 文件并添加引用,或直接使用 NuGet 进行安装。

代码语言:C#
复制
PM> Install-Package Spire.Doc

在 C# 中按百分比设置 Word 表格列宽

在 Word 表格中使用百分比设置列宽时,首先需要将表格的首选宽度类型设置为百分比。例如,可以通过 Table.PreferredWidth = new PreferredWidth(WidthType.Percentage, (short)100) 将表格宽度设置为页面宽度的 100%。随后,遍历表格中的各列,并根据需要为其设置相同或不同的百分比宽度。

具体步骤如下:

  1. 创建一个 Document 对象。
  2. 使用 Document.LoadFromFile() 方法加载 Word 文档。
  3. 通过 Document.Sections0 获取文档中的第一个节。
  4. 通过 Section.Tables0 获取该节中的第一个表格。
  5. 使用 for 循环遍历表格中的所有行。
  6. 使用 TableRow.Cellsindex.SetCellWidth(value, CellWidthType.Percentage) 方法为7. 不同列中的单元格设置百分比列宽。
  7. 使用 Document.SaveToFile() 方法保存修改后的 Word 文档。

完整示例代码如下:

代码语言:C#
复制
using Spire.Doc;

namespace SpireDocDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建一个新的 Document 对象
            Document doc = new Document();

            // 加载名为“Sample.docx”的文档
            doc.LoadFromFile("Sample.docx");

            // 获取文档中的第一个节
            Section section = doc.Sections[0];

            // 获取该节中的第一个表格
            Table table = (Table)section.Tables[0];

            // 创建 PreferredWidth 对象,将宽度类型设置为百分比,并将宽度值设置为 100%
            PreferredWidth percentageWidth = new PreferredWidth(WidthType.Percentage, (short)100);

            // 将表格的首选宽度设置为上述 PreferredWidth 对象
            table.PreferredWidth = percentageWidth;

            // 定义一个 TableRow 类型变量
            TableRow tableRow;

            // 遍历表格中的所有行
            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("set_column_width_by_percentage.docx", FileFormat.Docx2016);

            // 关闭文档
            doc.Close();
        }
    }
}

在 C# 中按固定值设置 Word 表格列宽

在 Word 表格中使用固定值设置列宽时,首先需要将表格布局设置为固定模式,即通过 Table.TableFormat.LayoutType = LayoutType.Fixed 进行设置。随后,遍历表格中的各列,并根据需要为其设置相同或不同的固定宽度值。

具体步骤如下:

  1. 创建一个 Document 对象。
  2. 使用 Document.LoadFromFile() 方法加载 Word 文档。
  3. 通过 Document.Sections0 获取文档中的第一个节。
  4. 通过 Section.Tables0 获取该节中的第一个表格。
  5. 使用 for 循环遍历表格中的所有行。
  6. 使用 TableRow.Cellsindex.SetCellWidth(value, CellWidthType.Point) 方法为不同列中的单元格设置固定列宽。其中,value 需要替换为所需的宽度值(单位为磅)。
  7. 使用 Document.SaveToFile() 方法保存修改后的 Word 文档。

完整示例代码如下:

代码语言:C#
复制
using Spire.Doc;

namespace SpireDocDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建一个新的 Document 对象
            Document doc = new Document();

            // 加载文档
            doc.LoadFromFile("Sample.docx");

            // 获取文档中的第一个节
            Section section = doc.Sections[0];

            // 获取该节中的第一个表格
            Table table = (Table)section.Tables[0];

            // 将表格布局类型设置为固定
            table.Format.LayoutType = LayoutType.Fixed;

            // 获取左边距
            float leftMargin = section.PageSetup.Margins.Left;

            // 获取右边距
            float rightMargin = section.PageSetup.Margins.Right;

            // 计算页面宽度(减去左右边距)
            double pageWidth = section.PageSetup.PageSize.Width - leftMargin - rightMargin;

            // 定义一个 TableRow 类型变量
            TableRow tableRow;

            // 遍历表格中的所有行
            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("set_column_width_to_fixed_value.docx", FileFormat.Docx2016);

            // 关闭文档
            doc.Close();
        }
    }
}

使用 C# 按固定值设置 Word 表格列宽

本文介绍了如何在 C# 中为 Word 表格设置固定列宽。通过将表格布局模式设置为 LayoutType.Fixed,可以避免列宽随内容变化而自动调整,从而保持表格结构稳定,适用于对版式和数据对齐有较高要求的文档。

实现过程中,首先获取页面的可用宽度(页面宽度减去左右页边距),然后遍历表格中的每一行,并使用 SetCellWidth() 方法为各列指定固定宽度。最后保存文档,即可生成列宽一致、布局规范的 Word 表格。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备开发环境
  • 在 C# 中按百分比设置 Word 表格列宽
  • 在 C# 中按固定值设置 Word 表格列宽
  • 使用 C# 按固定值设置 Word 表格列宽
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档