如何使用Novacode DocX为代码中的表格中的文本设置垂直方向?

时间:2014-12-26 06:24:10

标签: c# .net windows docx 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;

如何自下而上?

enter image description here

2 个答案:

答案 0 :(得分:0)

此解决方案是一种解决方法,只有在您已经掌握了Table预先确定的列数后才能使用。首先需要创建一个文档,其中包含一个表,其中包含您要查找的属性,文本方向。然后,您可以根据需要从其他模板文档中获取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包含您正在寻找的属性表。

答案 1 :(得分:0)

您可以通过添加以下内容来实现:

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