以编程方式自动调整PowerPoint演示文稿中特定表格单元格的TextFrame

时间:2015-03-04 10:28:45

标签: c# cell autosize powerpoint-2010

我得到了下一个情况。 得到了一些变数:

        PowerPoint.Application objApp;
        Microsoft.Office.Interop.PowerPoint.Shape oShape;
        PowerPoint.Presentations objPresSet;
        PowerPoint._Presentation objPres;
        PowerPoint.Slides objSlides;
        PowerPoint._Slide objSlide;
        Microsoft.Office.Interop.PowerPoint.Shape oShape;

我正在创建PowerPoint 2010幻灯片演示文稿:

        objApp = new PowerPoint.Application();
        objApp.Visible = MsoTriState.msoTrue;
        objPresSet = objApp.Presentations;
        objPres = objPresSet.Open(strTemplate, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
        objSlides = objPres.Slides;

我在这里制作幻灯片:

        objSlide = objSlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);

下一步我将表格添加到幻灯片中:

        int rows = 4;
        int cells = 10;
        oShape = objSlide.Shapes.AddTable(rows, cells, 10, 10, 400, 450);

对于添加到特定单元格的文本,我没有任何问题:

        oShape.Table.Cell(1, 1).Shape.TextFrame.TextRange.Text = "Dummy Text";

但是,细胞不想伸展。 我尝试使用TextFrame属性修改AutoSize

        oShape.Table.Cell(1, 1).Shape.TextFrame.AutoSize = MsoAutoSize.msoAutoSizeTextToFitShape;

在这里,我得到了#34; ArgumentException":

  

指定的值超出范围。

有什么想法为什么会发生? 如果不是,是否有其他方法来拉伸表格单元格?

1 个答案:

答案 0 :(得分:2)

所以,感谢Steve Rindsberg解决方案:

oShape.Table.Columns._Index(2).Width = 12;

这很好地改变了表中列的大小。