Aspose.Words смешанный RowFormat.Borders.Horizont.LineStyle - PullRequest
0 голосов
/ 15 октября 2018

У нас проблемы с созданием таблицы со смешанным RowFormat.Borders.Horizontal.LineStyle.Наше требование состоит в следующем (обратите внимание на черную сплошную линию):

enter image description here

Самое близкое, что мы получили, это:

enter image description here

Мы пробовали разные вещи, но, похоже, не можем получить желаемую таблицу.

Ниже приведен пример кода того, что мы имеем до сих пор ...

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

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете выполнить это требование, используя следующий код:

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 as Developer Evangelist.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...