Как установить вертикальную ориентацию для текста в таблице в коде с Novacode DocX?

Создавать и вставлять таблицы в документы легко Novacode.DocX,

// Create a document.
using (DocX document = DocX.Create(@"Test.docx"))
{
// Add a Table to this document.
Table t = document.AddTable(2, 3);
// Specify some properties for this Table.
t.Alignment = Alignment.center;
t.Design = TableDesign.MediumGrid1Accent2;
// Add content to this Table.
t.Rows[0].Cells[0].Paragraphs.First().Append("A");
t.Rows[0].Cells[1].Paragraphs.First().Append("B");
t.Rows[0].Cells[2].Paragraphs.First().Append("C");
t.Rows[1].Cells[0].Paragraphs.First().Append("D");
t.Rows[1].Cells[1].Paragraphs.First().Append("E");
t.Rows[1].Cells[2].Paragraphs.First().Append("F");
// Insert the Table into the document.
document.InsertTable(t);
document.Save();
}// Release this document from memory.

Приведенный выше код создаст документ, который выглядит следующим образом:

И, Как установить вертикальную ориентацию для текста в таблице с DocX? Ориентация текста производится только справа налево или наоборот.

tablePlan.Rows[0].Cells[1].Paragraphs.First().Direction = Direction.LeftToRight;

А как поставить снизу вверх?

1 ответ

Вы можете достичь этого, добавив:

t.Rows[0].Cells[0].TextDirection = TextDirection.btLr;
t.Rows[0].Cells[1].TextDirection = TextDirection.btLr;
t.Rows[0].Cells[2].TextDirection = TextDirection.btLr;

Это решение обходное и работает только в том случае, если вы уже знаете количество столбцов, которые ваша таблица будет иметь заранее. Сначала вам нужно создать документ, который содержит таблицу со свойствами, которые вы ищете, направление текста. Вы можете тогда взять Tables по мере необходимости из другого шаблона документа.

// Create a document.
using (DocX document = DocX.Create(@"Test.docx"))
{
    Table t;
    using (DocX document2 = DocX.Load(@"Test2.docx"))
    {
        t = document2.Tables[0];
    }        
    // Specify some properties for this Table.
    t.Alignment = Alignment.center;
    t.Design = TableDesign.MediumGrid1Accent2;
    // Add content to this Table.
    t.Rows[0].Cells[0].Paragraphs.First().Append("A");
    t.Rows[0].Cells[1].Paragraphs.First().Append("B");
    t.Rows[0].Cells[2].Paragraphs.First().Append("C");
    t.Rows[1].Cells[0].Paragraphs.First().Append("D");
    t.Rows[1].Cells[1].Paragraphs.First().Append("E");
    t.Rows[1].Cells[2].Paragraphs.First().Append("F");
    // Insert the Table into the document.
    document.InsertTable(t);
    document.Save();
}// Release this document from memory.

document2 содержит таблицу со свойствами, которые вы ищете.

Другие вопросы по тегам