@ManMasterDevelopment
By Microsoft Word design, rows in a table in a Microsoft Word document are completely independent. It means each row can have any number of cells of any width. So, if you imagine first row with one wide cell and second row with two narrow cells, then looking at this document the cell in the first row will appear horizontally merged. But it is not a merged cell; it is just a single wide cell.
Another perfectly valid scenario is when the first row has two cells. First cell has CellMerge.First and second cell has CellMerge.Previous, in this case it is a merged cell. In both cases, the visual appearance in MS Word is exactly the same. Both cases are valid.
In your case, we suggest you please create the wide cells as shown below. Hope this helps you.
DocumentBuilder documentBuilder = new DocumentBuilder();
Aspose.Words.Tables.Table table = documentBuilder.StartTable();
documentBuilder.InsertCell();
documentBuilder.CellFormat.Width = 100;
documentBuilder.Write("100");
documentBuilder.InsertCell();
documentBuilder.CellFormat.Width = 100;
documentBuilder.Write("100");
documentBuilder.InsertCell();
documentBuilder.CellFormat.Width = 100;
documentBuilder.Write("100");
documentBuilder.EndRow();
documentBuilder.InsertCell();
documentBuilder.CellFormat.Width = 200;
documentBuilder.Write("200");
documentBuilder.InsertCell();
documentBuilder.CellFormat.Width = 100;
documentBuilder.Write("100");
documentBuilder.EndRow();
table.PreferredWidth = PreferredWidth.FromPoints(300);
documentBuilder.EndTable();
documentBuilder.Document.Save(MyDir + "20.8.docx");
If you still want to use your old code, please set CellFormat.HorizontalMerge as CellMerge.None before starting new row.
var word = new Aspose.Words.Document();
var builder = new DocumentBuilder(word);
builder.StartTable();
builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(33.3);
var cell = AddCell(builder);
cell.CellFormat.HorizontalMerge = CellMerge.First;
cell = AddCell(builder);
cell.CellFormat.HorizontalMerge = CellMerge.Previous;
cell = AddCell(builder);
cell.CellFormat.HorizontalMerge = CellMerge.Previous;
builder.EndRow();
cell.CellFormat.HorizontalMerge = CellMerge.None;
cell = AddCell(builder);
cell = AddCell(builder);
cell.CellFormat.HorizontalMerge = CellMerge.First;
cell = AddCell(builder);
cell.CellFormat.HorizontalMerge = CellMerge.Previous;
builder.EndRow();
builder.EndTable();
word.Save(MyDir + "output.docx");