C#Microsoft Interop Word在表格单元格中放置形状

时间:2016-07-06 05:37:02

标签: c# ms-word

我正在尝试将Microsoft.Office.Interop.Word.Shape放在表格单元格中,就像在这个简短的例子中一样:

Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
Word.Document oDocument = oWord.Documents.Add();
Word.Table oTable = oDocument.Tables.Add(oDocument.Range(), 4, 1);

Word.Cell oCell1 = oTable.Cell(1,1);
Word.Shape oShape1 = oDocument.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeRectangle.GetHashCode(), 7, 7, 11, 11, oCell1.Range);

Word.Cell oCell2 = oTable.Cell(2, 1);
Word.Shape oShape2 = oDocument.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeRectangle.GetHashCode(), 7, 7, 11, 11, oCell2.Range);

Word.Cell oCell3 = oTable.Cell(3, 1);
Word.Shape oShape3 = oDocument.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeRectangle.GetHashCode(), 7, 7, 11, 11, oCell3.Range);

Word.Cell oCell4 = oTable.Cell(4, 1);
Word.Shape oShape4 = oDocument.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeRectangle.GetHashCode(), 7, 7, 11, 11, oCell4.Range);

  oWord.Visible = true;

矩形仅显示在文档的左上角。 因为我将形状锚设置到单元格区域,所以我不确定我做错了什么。

2016年12月7日

好的,看看这个, 我现在有5列和100行,并尝试将形状放入第三列。我正在使用“与文字一致”的属性。

现在,在前两页中,所有形状都放在第一行/列中。从第三页开始看起来正确......

我正在使用Office 2013。

Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
Word.Document oDocument = oWord.Documents.Add();

int numRows = 100;
Word.Table oTable = oDocument.Tables.Add(oDocument.Range(), numRows, 5);
oTable.Borders.OutsideLineStyle =  Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
oTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;

for (int r = 1; r <= numRows; ++r)
{
    Word.Range anchorRange = oTable.Cell(r, 3).Range;
    Word.Shape oShape = oDocument.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeRectangle.GetHashCode(), 7, 7, 11, 11, anchorRange);
    oShape.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapInline;
}
oWord.Visible = true;

1 个答案:

答案 0 :(得分:0)

如果单击添加的矩形,并启用段落/格式符号(它是Home&gt; Paragraph中的向后P查找按钮),您会注意到锚点确实在表格单元格上。文本包装的形状还需要其他设置才能在页面上显示某些位置。弄乱大小和位置对话框以了解它。