C# 提取嵌入到PowerPoint中的Document对象的内容,另存到.doc中
时间: 2024-12-26 14:28:48 浏览: 9
在C#中,你可以使用`Microsoft.Office.Interop.PowerPoint`和`Microsoft.Office.Interop.Word`库来处理PowerPoint演示文稿中的嵌入文档,并将其内容提取出来保存为`.doc`文件。以下是大致步骤:
首先,你需要添加对这些库的引用,如果还没有的话,可以在Visual Studio的NuGet包管理器中安装它们:
```csharp
using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Interop.Word;
```
然后,假设你已经有了一个`Presentation`对象,表示打开的PowerPoint演示文稿:
```csharp
PowerPoint.Application pptApp = new PowerPoint.Application();
Presentation presentation = pptApp.Presentations.Open("path_to_your_ppt_file");
```
接着找到包含嵌入文档的幻灯片,并获取其`Shape`对象:
```csharp
Shape slideObject = presentation.Slides[slideNumber].Shapes[shapeIndex];
```
检查`slideObject`是否是嵌入的对象,通常是`InlineShapes`类型的`OLEFormat`:
```csharp
if (slideObject.OLEFormat.Type == PpObjectType.ppOleObject)
{
OLEFormat oleFormat = (OLEFormat)slideObject.OLEFormat;
if (oleFormat.IsEmbeddable)
{
// 现在你知道这是个可以操作的嵌入文档
Document embeddedDoc = oleFormat.GetEmbedSource() as Document; // 这里假设嵌入的是Word文档
}
}
```
一旦你有了`Document`对象,就可以读取其内容了,例如通过`TextRange`:
```csharp
TextRange textRange = embeddedDoc.Content.TextRange;
string content = textRange.Text;
```
最后,你可以创建一个新的Word文档并写入提取的内容:
```csharp
Application wordApp = new Word.Application();
Document newDoc = wordApp.Documents.Add();
newDoc.Content.InsertAfter(content);
newDoc.SaveAs("path_to_save_your_new_doc", WdSaveFormat.wdFormatDocument); // 使用Word的保存格式
wordApp.Quit();
```
记得关闭应用程序以释放资源。
阅读全文