C# Aspose.Words混合行格式.Borders.Horizontal.LineStyle

C# Aspose.Words混合行格式.Borders.Horizontal.LineStyle,c#,ms-word,aspose,aspose.words,C#,Ms Word,Aspose,Aspose.words,创建具有混合RowFormat.Borders.Horizontal.LineStyle的表时遇到问题。我们的要求是在黑色实线上注明以下内容: 我们得到的最接近的结果是: 我们尝试了各种方法,但似乎都没有得到想要的桌子 下面是我们到目前为止的示例代码 using Aspose.Words; using Aspose.Words.Tables; using System; using System.Diagnostics; 您可以通过使用以下代码来满足此要求: int i = 1; var do

创建具有混合RowFormat.Borders.Horizontal.LineStyle的表时遇到问题。我们的要求是在黑色实线上注明以下内容:

我们得到的最接近的结果是:

我们尝试了各种方法,但似乎都没有得到想要的桌子

下面是我们到目前为止的示例代码

using Aspose.Words;
using Aspose.Words.Tables;
using System;
using System.Diagnostics;

您可以通过使用以下代码来满足此要求:

int i = 1;
var doc = new Document();
var builder = new DocumentBuilder(doc);

Table tab = builder.StartTable();           

InsertCellAuto();
InsertCell("merge 1");
builder.CellFormat.VerticalMerge = CellMerge.First;
builder.EndRow();

builder.CellFormat.VerticalMerge = CellMerge.None; //reset

InsertCellAuto();
InsertCellAuto();
builder.CellFormat.VerticalMerge = CellMerge.Previous;
builder.EndRow();

builder.CellFormat.VerticalMerge = CellMerge.None; //reset

InsertCellAuto();
InsertCell("merge 2");
builder.CellFormat.VerticalMerge = CellMerge.First;
builder.EndRow();

builder.CellFormat.VerticalMerge = CellMerge.None; //reset

InsertCellAuto();
InsertCellAuto();
builder.CellFormat.VerticalMerge = CellMerge.Previous;
builder.EndRow();

builder.EndTable();

// Apply Dotted line styles to all Rows
foreach (Row r in tab.Rows)
{
    r.RowFormat.Borders.Horizontal.LineStyle = LineStyle.Dot;
}
// Apply Single line styles to a particular Row
Row row = tab.Rows[1];
foreach (Cell cell in row.Cells)
{
    cell.CellFormat.Borders[BorderType.Bottom].LineStyle = LineStyle.Single;
}

doc.Save("D:\\temp\\18.10.docx");

void InsertCellAuto() => InsertCell(i++.ToString());

void InsertCell(string text)
{
    builder.InsertCell();
    builder.Writeln(text);
}

我与Aspose一起工作,担任开发人员福音传道者。

工作非常有魅力!非常感谢。快速提问,我们的要求只能通过修改EndTable后的格式来实现,对吗?是的,在EndTable完成表格后,最好对单元格和行应用格式设置。您的意思是我们还可以将CellFormat.VerticalMerge和RowFormat.Borders.Horizontal.LineStyle=LineStyle.Dot移到EndTable之后?在StartTable和EndTable之间使用CellFormat.VerticalMerge和CellFormat.HorizontalMerge属性没有问题床头柜但是,可以去掉LineStyle.Dot。请检查,我已经更新了。我知道了。谢谢阿瓦伊斯!
int i = 1;
var doc = new Document();
var builder = new DocumentBuilder(doc);

Table tab = builder.StartTable();           

InsertCellAuto();
InsertCell("merge 1");
builder.CellFormat.VerticalMerge = CellMerge.First;
builder.EndRow();

builder.CellFormat.VerticalMerge = CellMerge.None; //reset

InsertCellAuto();
InsertCellAuto();
builder.CellFormat.VerticalMerge = CellMerge.Previous;
builder.EndRow();

builder.CellFormat.VerticalMerge = CellMerge.None; //reset

InsertCellAuto();
InsertCell("merge 2");
builder.CellFormat.VerticalMerge = CellMerge.First;
builder.EndRow();

builder.CellFormat.VerticalMerge = CellMerge.None; //reset

InsertCellAuto();
InsertCellAuto();
builder.CellFormat.VerticalMerge = CellMerge.Previous;
builder.EndRow();

builder.EndTable();

// Apply Dotted line styles to all Rows
foreach (Row r in tab.Rows)
{
    r.RowFormat.Borders.Horizontal.LineStyle = LineStyle.Dot;
}
// Apply Single line styles to a particular Row
Row row = tab.Rows[1];
foreach (Cell cell in row.Cells)
{
    cell.CellFormat.Borders[BorderType.Bottom].LineStyle = LineStyle.Single;
}

doc.Save("D:\\temp\\18.10.docx");

void InsertCellAuto() => InsertCell(i++.ToString());

void InsertCell(string text)
{
    builder.InsertCell();
    builder.Writeln(text);
}