Denna korta handledning beskriver hur man slår ihop celler i Word med C#. Den har detaljerna för att ställa in IDE, en lista med steg, en fördefinierad funktion för att kombinera cellerna och en exempelkod som visar hur man slår samman tabeller i Word med C# med hjälp av denna fördefinierade funktion. Det finns inget behov av något annat verktyg från tredje part för att utföra denna uppgift.
Steg för att slå samman celler i Word Table med C#
- Ställ in IDE att använda Aspose.Words for .NET för att kombinera celler i en tabell
- Deklarera en fördefinierad metod MergeCells för användning i din applikation
- Ladda in Word-källfilen i Document-objektet med en eller flera tabeller i sig
- Gå till tabellen i den laddade Word-filen för att slå samman celler
- Få åtkomst till start cell i målsammanslagningsintervallet
- Gå till slutcellen för sammanslagningsintervallet
- Anropa metoden MergeCells() genom att tillhandahålla start- och slutcellerna och spara dokumentet
Dessa steg hjälper till med hur man slår samman celler i Word med C#. Lägg till den fördefinierade metoden i ditt projekt och anropa den genom att ange start- och slutcellen du vill slå samman. Det kommer att ändra källfilen, därför kan du spara den laddade Word-filen med ett annat namn med de sammanslagna cellerna.
Kod för att kombinera celler i Word med 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"); | |
} | |
} |
Den här koden visar hur man kombinerar tabeller i Word med C#. Vi har lagt till en fördefinierad metod MergeCells tillsammans med dess definition och kallar den sedan i vår applikation där det behövs. Du kan välja avsnittet, en lista med tabeller i det avsnittet och komma åt måltabellen med hjälp av dess index för att välja start- och slutceller för sammanslagning. Du kan upprepa denna process för att slå samman celler så många som krävs.
Vi har lärt oss hur man slår samman celler i Microsoft Word med C#. Om du vill slå samman fullständiga Word-dokument, se artikeln om Hur man slår samman Word-dokument med C#.