0

我正在尝试通过 C# 在 PowerPoint 中拉伸表格

表格已经从 Excel 复制到 PowerPoint 中,问题是粘贴时表格内容很小,无法读取。

我所做的基本上是将 HTML 文件复制到

Clipboard.SetText(html);

将其粘贴到 Excel 范围内

sheet.Range(cellmapp).PasteSpecial();  
sheet.Columns.AutoFit();
sheet.Rows.AutoFit();
sheet.UsedRange.Copy(Missing.Value);

现在,我想将它粘贴到 PowerPoint 中的正确位置

foreach (PowerPoint.Slide slide in presentation.Slides)
{
     foreach (PowerPoint.Shape pptshape in slide.Shapes)
     {
           if (!pptshape.Type.ToString().Equals("msoAutoShape") && pptshape.AlternativeText.Contains("|"))
           {
               if (xlsSheetName == pptSheetName && xlsShapeName == pptxlsShapeName)
               {
                   ppApp.ActiveWindow.View.PasteSpecial();
               }
           }
     }
}

它会在我选择的位置复制我在 PowerPoint 中的表格。

但问题是,这张桌子真的又薄又小,难以辨认,因为它太小了。

C# 中是否有拉伸功能?

谢谢。

4

2 回答 2

1

我过去做过类似的事情 - 如果我没记错的话,您必须将新表格对象的宽度/高度属性设置为更大的值(这取决于工作表的布局)但 Powerpoint 可能会忽略这一点,如果文本太小 - 在这种情况下,只需调整每个单元格的 .font.size 属性。

作为一个额外的想法:考虑到 excel 粘贴表的糟糕布局以及修改它时表对象的缓慢性,根据自己的喜好创建一个 powerpoint 表然后将 excel 中的值粘贴到新表中可能会更快。只需遍历每个单元格并为 .text 属性分配一个值。如果您可以使用默认的 powerpoint 样式,则可以通过编程方式将每个表格设置为一种样式,请搜索表格对象的 .style 属性。

于 2013-04-03T13:03:44.003 回答
1

您还可以:

  1. 在 Excel 中选择您需要的所有单元格
  2. 将它们复制到剪贴板
  3. 将其粘贴到PowerPoint中
  4. 调整形状表的大小

    var clipbordCache = Clipboard.GetDataObject();

    //复制到excel...

    //粘贴到PowerPoint中

    var table = slide.shapes.Paste(); Clipboard.SetDataObject(clipbordCache);

    //调整大小

    table.Width = 200;

于 2013-04-03T13:56:23.190 回答