在vsto、Aspose.Words 中,默认没有直接的 API 可以让表格整体旋转 90 度。然而,我们可以通过一些方式来实现类似的效果,具体思路如下:
将表格插入到一个形状(Shape)或文本框中,然后旋转该形状。
将表格内容旋转,这通过设置文本方向为垂直来模拟旋转效果。
using Aspose.Words;
using Aspose.Words.Tables;
using Aspose.Words.Drawing;
class Program
{
static void Main()
{
// 创建文档和 DocumentBuilder
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 创建 Shape(文本框)
Shape shape = new Shape(doc, ShapeType.TextBox);
shape.Width = 200; // 设置文本框的宽度
shape.Height = 400; // 设置文本框的高度
shape.WrapType = WrapType.None;
// 旋转 Shape 90 度
shape.Rotation = 90;
// 将 Shape 添加到文档中
builder.InsertNode(shape);
// 创建一个新的 DocumentBuilder 用于 Shape 内部
DocumentBuilder shapeBuilder = new DocumentBuilder(doc);
shapeBuilder.MoveTo(shape.FirstParagraph);
// 在 Shape 内部添加一个表格
Table table = shapeBuilder.StartTable();
shapeBuilder.InsertCell();
shapeBuilder.Write("Cell 1");
shapeBuilder.InsertCell();
shapeBuilder.Write("Cell 2");
shapeBuilder.EndRow();
shapeBuilder.InsertCell();
shapeBuilder.Write("Cell 3");
shapeBuilder.InsertCell();
shapeBuilder.Write("Cell 4");
shapeBuilder.EndTable();
// 保存文档
doc.Save("RotatedTable.docx");
}
}