Този кратък урок описва как да слеете клетки в Word с помощта на C#. Има подробности за настройка на IDE, списък със стъпки, предварително дефинирана функция за комбиниране на клетките и примерен код, показващ как да обединявате таблици в Word с помощта на C# с помощта на тази предварително дефинирана функция. Няма нужда от друг инструмент на трета страна за изпълнение на тази задача.
Стъпки за обединяване на клетки в таблица на Word с помощта на C#
- Настройте IDE да използва Aspose.Words for .NET за комбиниране на клетки в таблица
- Декларирайте предварително дефиниран метод MergeCells за използване във вашето приложение
- Заредете изходния Word файл в обекта Document, съдържащ една или повече таблици в него
- Достъп до таблицата в заредения Word файл за обединяване на клетки
- Достъп до началната cell на целевия обхват на сливане
- Достъп до крайната клетка на диапазона за сливане
- Извикайте метода 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#.