首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Aspose.Words混合RowFormat.Borders.Horizontal.LineStyle

Aspose.Words混合RowFormat.Borders.Horizontal.LineStyle
EN

Stack Overflow用户
提问于 2018-10-16 02:30:59
回答 1查看 287关注 0票数 0

创建具有混合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);

builder.StartTable();

builder.RowFormat.Borders.Horizontal.LineStyle = LineStyle.Dot;

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();

string fileName = $"{DateTime.Now.ToString("HHmmss")}.docx";
doc.Save(fileName);
Process.Start(fileName);

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

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-16 07:52:37

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

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一起工作,作为开发人员的布道者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52822766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档