首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python与C#创建PPT演示文稿

使用Python与C#创建PPT演示文稿
EN

Stack Overflow用户
提问于 2013-06-04 23:57:51
回答 1查看 821关注 0票数 1

我即将自动化创建PPT的过程,但不确定要朝哪个方向前进。

总体目标是读取如下所示的Excel电子表格:

代码语言:javascript
复制
Path:
<somepath>
_________________________________________________________
Picture name      |    Title                |   Subtitle  
__________________________________________________________

用户将给我一个到图片的路径,然后我将根据他们给我的信息创建一个PPT演示文稿。

似乎有两条路可以走,要么是C#,要么是Python,但我不确定该选择哪一条。有没有人有这方面的经验,你可以列出每一个的优缺点,或者还有其他更好的解决方案,你能让我知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-13 17:43:24

确实有几种方法可以做到这一点。让我们开始吧,如果您曾经计划创建一个可以执行相同功能的加载项,您可以在以下位置找到有关如何创建加载项的详细信息:https://netoffice.codeplex.com/

现在,让我们回到你的主要问题。一种简单的方法是使用C#。

代码语言:javascript
复制
//http://netoffice.codeplex.com/discussions/277323
/// Loop through all our sheets in Excel in order to make the replacement
foreach (Excel.Worksheet sheet in workbook.Sheets)
{
    /// Select current sheet
    sheet.Activate();
    workSheet = (Excel.Worksheet)xlsApp.Worksheets[worksheetnumber];
    //Console.WriteLine(workSheet.Name);
    foreach (Excel.Range cell in workSheet.UsedRange)
    {

    }
}

这段代码允许您遍历所有工作表并检查使用的单元格。

在您的例子中,您希望考虑一些特定的范围。

代码语言:javascript
复制
sheet.UsedRange.Copy(Missing.Value);

您可以将其保存到一个变量中,并逐行读取它并解释其结果。

这就是Excel部分,现在我们来看Powerpoint部分。如何计划创建您的Powerpoint,您希望存储和显示哪些信息,每张幻灯片图片?每张幻灯片有几张图片?您可以做的是,创建您的模板Powerpoint并遍历它

代码语言:javascript
复制
foreach (PowerPoint.Slide slide in presentation.Slides)
{
        slide.Select();
        slide.Shapes.AddPicture(temporaryFilePath + ".bmp", MsoTriState.msoTrue, MsoTriState.msoTrue, pptleft, ppttop, pptwidth, pptheight);
}    

这实际上会在每张幻灯片上添加一张图片。如果你想自己创建一个新的幻灯片,你必须定义一个新的对象,无论它是一个表格还是一张图片,这都与它的概念无关。

代码语言:javascript
复制
 PowerPoint.Table objTable = null;
 objTable = presentation.Slides[slide.SlideIndex].Shapes.AddTable(amountrowsshown, pptshape.Table.Columns.Count, topsize, leftsize, slide.Master.Width - widthsize, slide.Master.Height - heightsize).Table;
 presentation.Slides.Add(slide.SlideIndex + newaddslidecounter, NetOffice.PowerPointApi.Enums.PpSlideLayout.ppLayoutClipArtAndVerticalText);

到目前为止,我们已经看到了如何让Excel使用范围,现在,你的工作申请到你想要使用的特定范围。您知道如何迭代所有幻灯片,以及如何在需要时添加新幻灯片。缺少的部分是保存Excel和Powerpoint。

代码语言:javascript
复制
presentation.SaveAs("myfile.pptx");
presentation.Close();
ppApp.Quit();
workbook.SaveAs("myfile.xlsx");
workbook.Close();
xlsApp.Quit(); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16922366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档