Объединение ячеек в Word с помощью C#

В этом кратком руководстве описывается, как объединить ячейки в Word с помощью C#. В нем есть подробности по настройке IDE, список шагов, предопределенная функция для объединения ячеек и пример кода, показывающий как объединить таблицы в Word с помощью C# с помощью этой предопределенной функции. Для выполнения этой задачи не требуется никаких других сторонних инструментов.

Действия по объединению ячеек в таблице Word с использованием C#

  1. Настройте IDE на использование Aspose.Words for .NET для объединения ячеек в таблице
  2. Объявите предопределенный метод MergeCells для использования в вашем приложении.
  3. Загрузите исходный файл Word в объект Document, содержащий одну или несколько таблиц.
  4. Доступ к таблице в загруженном файле Word для объединения ячеек.
  5. Доступ к начальной cell целевого диапазона слияния
  6. Доступ к конечной ячейке диапазона объединения
  7. Вызовите метод MergeCells(), указав начальную и конечную ячейки, и сохраните документ.

Эти шаги помогут вам объединить ячейки в Word с помощью C#. Добавьте предопределенный метод в свой проект и вызовите его, указав начальную и конечную ячейку, которую вы хотите объединить. Это изменит исходный файл, поэтому вы можете сохранить загруженный файл Word с другим именем, содержащим объединенные ячейки.

Код для объединения ячеек в Word с использованием C#

using System;
using System.Drawing;
using Aspose.Words;
using Aspose.Words.Tables;
class Program
{
static void MergeCells(Cell startCell, Cell endCell)
{
Table parentTable = startCell.ParentRow.ParentTable;
// Find the start and end cell
Point startingCell = new Point(startCell.ParentRow.IndexOf(startCell), parentTable.IndexOf(startCell.ParentRow));
Point endingCell = new Point(endCell.ParentRow.IndexOf(endCell), parentTable.IndexOf(endCell.ParentRow));
// Create a range of cells
Rectangle mergeRange = new Rectangle(Math.Min(startingCell.X, endingCell.X),Math.Min(startingCell.Y, endingCell.Y),
Math.Abs(endingCell.X - startingCell.X) + 1, Math.Abs(endingCell.Y - startingCell.Y) + 1);
foreach (Row currentRow in parentTable.Rows)
{
foreach (Cell currentCell in currentRow.Cells)
{
Point currentPos = new Point(currentRow.IndexOf(currentCell), parentTable.IndexOf(currentRow));
// Check if the current cell is inside the range
if (mergeRange.Contains(currentPos))
{
currentCell.CellFormat.HorizontalMerge = currentPos.X == mergeRange.X ? CellMerge.First : CellMerge.Previous;
currentCell.CellFormat.VerticalMerge = currentPos.Y == mergeRange.Y ? CellMerge.First : CellMerge.Previous;
}
}
}
}
static void Main(string[] args)
{
License lic = new License();
lic.SetLicense("license.lic");
Document doc = new Document("Table.docx");
Table table = doc.FirstSection.Body.Tables[0];
// Define starting and ending cells
Cell cellStartRange = table.Rows[0].Cells[0];
Cell cellEndRange = table.Rows[1].Cells[1];
// Merge all the cells
MergeCells(cellStartRange, cellEndRange);
doc.Save("Output.docx");
}
}

Этот код демонстрирует, как объединить таблицы в Word с помощью C#. Мы добавили предопределенный метод MergeCells вместе с его определением, а затем вызываем его в нашем приложении, где это необходимо. Вы можете выбрать раздел, список таблиц в этом разделе и получить доступ к целевой таблице с помощью ее индекса, чтобы выбрать начальные и конечные ячейки для слияния. Вы можете повторить этот процесс, чтобы объединить столько ячеек, сколько необходимо.

Мы узнали, как объединять ячейки в Microsoft Word с помощью C#. Если вы хотите объединить целые документы Word, обратитесь к статье Как объединить документы Word с помощью C#.

 Русский