Я пытался читать .ppt файлов за последние 3 дня. Я много искал в Интернете, и я придумал разные фрагменты исходного кода, но ничего не было идеально. И теперь я пробовал этот код, и он не печатает «Check» из-за некоторой неопределенной проблемы в « Foreach» и выдает исключение. Пожалуйста, направляйте меня. Мне это нужно плохо.Powerpoint to Text C# - Microsoft.Interop
public static void ppt2txt (String source)
{
string fileName = System.IO.Path.GetFileNameWithoutExtension(source);
string filePath = System.IO.Path.GetDirectoryName(source);
Console.Write("Check1");
Application pa = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();
Microsoft.Office.Interop.PowerPoint.Presentation pp = pa.Presentations.Open (source,
Microsoft.Office.Core.MsoTriState.msoTrue,
Microsoft.Office.Core.MsoTriState.msoFalse,
Microsoft.Office.Core.MsoTriState.msoFalse);
Console.Write("Check2");
String pps = "";
Console.Write("Check3");
foreach (Microsoft.Office.Interop.PowerPoint.Slide slide in pp.Slides)
{
foreach (Microsoft.Office.Interop.PowerPoint.Shape shape in slide.Shapes)
pps += shape.TextFrame.TextRange.Text.ToString();
}
Console.Write("Check4");
Console.WriteLine(pps);
}
Метательное исключение
System.ArgumentException: Указанное значение выходит за пределы диапазона. в Microsoft.Office.Interop.PowerPoint.TextFrame.get_TextRange() at KareneParser.Program.ppt2txt (источник строки) в c: \ Users \ Shahmeer \ Desktop \ Новая папка (2) \ KareneParser \ Program.cs: строка 323 в KareneParser.Program.Main (String [] арг) в C: \ Users \ Shahmeer \ Desktop \ Новая папка (2) \ KareneParser \ Program.cs: линия 150
Line 323, на которой ловится исключение
pps += shape.TextFrame.TextRange.Text.ToString();
Заранее благодарен.
Вы не указали исключение. Похоже, вы отправили строку, в которой происходит исключение. Не могли бы вы отредактировать свое сообщение с типом исключения и сообщением об исключении? –
Я редактировал свой вопрос и добавлял исключение. Спасибо, что ответили так быстро. – user3057437