C#: AutoFit Tables in Word

Manually adjusting table columns can be time-consuming, especially if you have a large document with multiple tables. This is where the AutoFit tables feature in Word comes into play. It allows you to adjust the size of your table automatically, eliminating the need for manual adjustments. By setting AutoFit, the table will always adapt to display the content in the most suitable way. In this article, you will learn how to autofit tables in a Word document in C# using Spire.Doc for .NET.

Install Spire.Doc for .NET

To begin with, you need to add the DLL files included in the Spire.Doc for.NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.

PM> Install-Package Spire.Doc

Set Tables to AutoFit to Contents in Word in C#

The AutoFit to Contents option in Word adjusts the size of table columns and rows according to the content within the cells. Once set, each column is automatically resized to ensure that all content is displayed completely without excessive empty space.

With Spire.Doc for .NET, you can use the Table.AutoFit(AutoFitBehaviorType.AutoFitToContents) method to autofit tables to content. The following are the detailed steps:

  • Create a Document instance.
  • Load a Word document using Document.LoadFromFile() method.
  • Get a specified section in the document through Document.Sections[] property.
  • Get a specified table in the section through Section.Tables[] property.
  • AutoFit the table to contents using Table.AutoFit(AutoFitBehaviorType.AutoFitToContents) method.
  • Save the result document using Document.SaveToFile() method.
  • C#
using Spire.Doc;

namespace AutoFitToContents
{
    class Program
    {

        static void Main(string[] args)
        {
            // Create a Document instance
            Document doc = new Document();

            // Load a Word document
            doc.LoadFromFile("TableTemp.docx");

            // Get the first section in the document
            Section section = doc.Sections[0];

            // Get the first table in the section
            Table table = section.Tables[0] as Table;

            // AutoFit the table to contents
            table.AutoFit(AutoFitBehaviorType.AutoFitToContents);

            // Save the result document
            doc.SaveToFile("AutoFitToContents.docx", FileFormat.Docx);
        }
    }
}

Autofit the table to cell content in Word

Set Tables to AutoFit to Window in Word in C#

The AutoFit to Window option in Word enables the table to automatically adjust its width to fit the width of the Word window. Once set, the table will expand or contract to fill the entire page width (between the left and right margins).

To autofit tables to page, use the Table.AutoFit(AutoFitBehaviorType.AutoFitToWindow) method. The following are the detailed steps:

  • Create a Document instance.
  • Load a Word document using Document.LoadFromFile() method.
  • Get a specified section in the document through Document.Sections[] property.
  • Get a specified table in the section through Section.Tables[] property.
  • AutoFit the table to Word window using Table.AutoFit(AutoFitBehaviorType.AutoFitToWindow) method.
  • Save the result document using Document.SaveToFile() method.
  • C#
using Spire.Doc;

namespace AutoFitToWindow
{
    class Program
    {

        static void Main(string[] args)
        {
            // Create a Document instance
            Document doc = new Document();

            // Load a Word document
            doc.LoadFromFile("TableTemp.docx");

            // Get the first section in the document
            Section section = doc.Sections[0];

            // Get the first table in the section
            Table table = section.Tables[0] as Table;

            // AutoFit the table to page
            table.AutoFit(AutoFitBehaviorType.AutoFitToWindow);

            // Save the result document
            doc.SaveToFile("AutoFitToWindow.docx", FileFormat.Docx);
        }
    }
}

Autofit the table to page width in Word

Set Tables to Fixed Column Width in Word in C#

The Fixed Column Width option in Word allows you to maintain a specific, unchanging width for each column in the table. Once set, the column width of the table will remain fixed regardless of any changes to the content within the cells or the size of the document window.

The Table.AutoFit(AutoFitBehaviorType.FixedColumnWidths) method can be used to set fixed column width for Word tables. The following are the detailed steps to:

  • Create a Document instance.
  • Load a Word document using Document.LoadFromFile() method.
  • Get a specified section in the document through Document.Sections[] property.
  • Get a specified table in the section through Section.Tables[] property.
  • Fix the column widths of the table using Table.AutoFit(AutoFitBehaviorType.FixedColumnWidths) method.
  • Iterate through each row and then set the new column widths using Table.Rows[index].Cells[index].SetCellWidth() method.
  • Save the result document using Document.SaveToFile() method.
  • C#
using Spire.Doc;

namespace FixedColumnWidth
{
    class Program
    {

        static void Main(string[] args)
        {
            // Create a Document instance
            Document doc = new Document();

            // Load a Word document
            doc.LoadFromFile("TableTemp.docx");

            // Get the first section in the document
            Section section = doc.Sections[0];

            // Get the first table in the section
            Table table = section.Tables[0] as Table;

            // Set to fixed column width
            table.AutoFit(AutoFitBehaviorType.FixedColumnWidths);

            // Iterate through each row in the table
            for (int i = 0; i < table.Rows.Count; i++)
            {
                // Reset the width of the first column 
                table.Rows[i].Cells[0].SetCellWidth(120f, CellWidthType.Point);
                // Reset the width of the second column 
                table.Rows[i].Cells[1].SetCellWidth(60f, CellWidthType.Point);
                // Reset the width of the third column 
                table.Rows[i].Cells[2].SetCellWidth(40f, CellWidthType.Point);
                // Reset the width of the fourth column 
                table.Rows[i].Cells[3].SetCellWidth(90f, CellWidthType.Point);

            }

            // Save the result document
            doc.SaveToFile("FixedColumnWidth.docx", FileFormat.Docx);
        }
    }
}

Set fixed column width for a Word table

Get a Free License

To fully experience the capabilities of Spire.Doc for .NET without any evaluation limitations, you can request a free 30-day trial license.