Категория

C#/VB.NET: создание таблицы в Word

2023-09-27 06:54:29

Установлено через NuGet

PM> Install-Package Spire.Doc

Ссылки по теме

В MS Word таблицы могут организовывать и представлять данные в строках и столбцах, что облегчает понимание и анализ информации. В этой статье вы узнаете, как программно создать таблицу с данными в документе Word использование Spire.Doc for .NET.

Установите Spire.Doc for .NET

Для начала вам необходимо добавить файлы DLL, включенные в пакет Spire.Doc for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.

PM> Install-Package Spire.Doc

Создать простую таблицу в Word

Ниже приведены некоторые основные классы и методы, предоставляемые Spire.Doc for .NET для создания и форматирования таблиц в Word.

Имя Описание
Класс таблицы Представляет таблицу в документе Word.
Класс ТаблеРоу Представляет строку в таблице.
Класс Таблеселл Представляет определенную ячейку в таблице.
Метод Раздел.AddTbale() Добавляет новую таблицу в указанный раздел.
Метод Table.ResetCells() Сбрасывает номер строки и номер столбца.
Свойство Table.Rows Получает строки таблицы.
Свойство TableRow.Height Устанавливает высоту указанной строки.
Свойство TableRow.Cells Возвращает коллекцию ячеек.
Свойство TableRow.RowFormat Получает формат указанной строки.

Подробные шаги следующие:

  • Создайте объект Document и добавьте к нему раздел.
  • Подготовьте данные для строки заголовка и других строк, сохранив их в одномерном массиве строк и двумерном массиве строк соответственно.
  • Добавьте таблицу в раздел с помощью метода Раздел.AddTable().
  • Вставьте данные в строку заголовка и задайте форматирование строки, включая высоту строки, цвет фона и выравнивание текста.
  • Вставьте данные в остальные строки и примените к этим строкам форматирование.
  • Сохраните документ в другой файл, используя метод Document.SaveToFile().
  • C#
  • VB.NET
using System;
    using System.Drawing;
    using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    
    namespace WordTable
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a Document object
                Document doc = new Document();
                //Add a section
                Section s = doc.AddSection();
    
                //Define the data for the table
                String[] Header = { "Date", "Description", "Country", "On Hands", "On Order" };
                String[][] data = {
                                      new String[]{ "08/07/2021","Dive kayak","United States","24","16"},
                                      new String[]{ "08/07/2021","Underwater Diver Vehicle","United States","5","3"},
                                      new String[]{ "08/07/2021","Regulator System","Czech Republic","165","216"},
                                      new String[]{ "08/08/2021","Second Stage Regulator","United States","98","88"},
                                      new String[]{ "08/08/2021","Personal Dive Sonar","United States","46","45"},
                                      new String[]{ "08/09/2021","Compass Console Mount","United States","211","300"},
                                      new String[]{ "08/09/2021","Regulator System","United Kingdom","166","100"},
                                      new String[]{ "08/10/2021","Alternate Inflation Regulator","United Kingdom","47","43"},
                                  };
                //Add a table
                Table table = s.AddTable(true);
                table.ResetCells(data.Length + 1, Header.Length);
    
                //Set the first row as table header
                TableRow FRow = table.Rows[0];
                FRow.IsHeader = true;
    
                //Set the height and color of the first row
                FRow.Height = 23;
                FRow.RowFormat.BackColor = Color.LightSeaGreen;
                for (int i = 0; i < Header.Length; i++)
                {
                    //Set alignment for cells
                    Paragraph p = FRow.Cells[i].AddParagraph();
                    FRow.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
                    p.Format.HorizontalAlignment = HorizontalAlignment.Center;
    
                    //Set data format
                    TextRange TR = p.AppendText(Header[i]);
                    TR.CharacterFormat.FontName = "Calibri";
                    TR.CharacterFormat.FontSize = 12;
                    TR.CharacterFormat.Bold = true;
                }
    
                //Add data to the rest of rows and set cell format
                for (int r = 0; r < data.Length; r++)
                {
                    TableRow DataRow = table.Rows[r + 1];
                    DataRow.Height = 20;
                    for (int c = 0; c < data[r].Length; c++)
                    {
                        DataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
                        Paragraph p2 = DataRow.Cells[c].AddParagraph();
                        TextRange TR2 = p2.AppendText(data[r][c]);
                        p2.Format.HorizontalAlignment = HorizontalAlignment.Center;
    
                        //Set data format
                        TR2.CharacterFormat.FontName = "Calibri";
                        TR2.CharacterFormat.FontSize = 11;
                    }
                }
    
                //Save the document
                doc.SaveToFile("WordTable.docx", FileFormat.Docx2013);
            }
        }
    }

C#/VB.NET: Create a Table in Word

Подать заявку на временную лицензию

Если вы хотите удалить сообщение об оценке из сгенерированных документов или избавиться от ограничений функции, пожалуйста запросите 30-дневную пробную лицензию для себя.

Смотрите также