2013-06-04 27 views
1

我即将自动创建PPT的过程,但不知道要指出哪个方向。使用Python和C#创建PPT演示文稿

的总体目标是读一个Excel电子表格,这将是这样的:

Path: 
<somepath> 
_________________________________________________________ 
Picture name  | Title    | Subtitle 
__________________________________________________________ 

用户会给我的图片的路径,然后我将创建一个从他们给出的信息的PPT演示我。

看起来好像有两条路我可以选择C#或Python,但我不确定选择哪一条。有没有人有这方面的经验,你可以列出每个方面的利弊,或者是否有另一种更好的解决方案,请让我知道。

+0

您是否在寻找自动化的PowerPoint,通过Open Xml SDK生成PPTX文件,还有其他的东西? –

+0

@AlexeiLevenkov是的,我不知道其他方式 – user1334858

+0

请原谅商业参考,但如果预先制作的解决方案能为您完成这项工作,请查看我的用于PowerPoint的合并加载项。 http://www.pptools.com/merge/它可以完成你所追求的内容,而且还有更多。 –

回答

1

确实有几种方法。 让我们开始吧,如果你打算做一个可以做同样功能的插件,你可以找到更多关于如何创建插件的信息:https://netoffice.codeplex.com/

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

//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) 
    { 

    } 
} 

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

就你而言,你需要考虑一些特定的范围。

sheet.UsedRange.Copy(Missing.Value); 

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

这是Excel的一部分,现在我们来看看Powerpoint部分。 如何计划创建您的Powerpoint,您想要存储什么信息,以便每张幻灯片显示一张图片?每张幻灯片几张图片? 你可以做的是,通过它

foreach (PowerPoint.Slide slide in presentation.Slides) 
{ 
     slide.Select(); 
     slide.Shapes.AddPicture(temporaryFilePath + ".bmp", MsoTriState.msoTrue, MsoTriState.msoTrue, pptleft, ppttop, pptwidth, pptheight); 
}  

创建模板PowerPoint和循环这实际上每张幻灯片中添加图片。 如果你想自己创建一个新的幻灯片,你必须定义一个新的对象,无论是表格还是图片无关紧要。

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。

presentation.SaveAs("myfile.pptx"); 
presentation.Close(); 
ppApp.Quit(); 
workbook.SaveAs("myfile.xlsx"); 
workbook.Close(); 
xlsApp.Quit();