DamodarMaruboyina Ответов: 2

Есть ли способ прочитать данные ppt и сохранить их в таблице SQL


когда я переместил свой кодовый сервер 2012, я получу следующую ошибку.

Необработанное исключение типа ' System. Runtime.InteropServices.Исключение comexception произошел в PPTReadingConsoleApplication.exe


Получение фабрики COM-класса для компонента с CLSID {91493441-5A91-11CF-8700-00AA0060263B} не удалось из-за следующей ошибки: 80040154


В моей локальной системе ms-office есть и работает нормально. но в сервере нет ms office. как читать данные ppt на сервере.

Что я уже пробовал:

использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
используя системы.Текст;
использование Microsoft.Офис.Ядро;
использование PowerPoint = Microsoft.Офис.Взаимодействие.powerpoint;

пространство имен readPPT
{
программа занятий
{
static void Main (string[] args)
{
Microsoft.Офис.Взаимодействие.powerpoint.Приложение PowerPoint_App = новый Microsoft.Офис.Взаимодействие.powerpoint.Приложение();
Microsoft.Офис.Взаимодействие.powerpoint.Презентации multi_presentations = PowerPoint_App. Presentations;
Microsoft.Офис.Взаимодействие.powerpoint.Презентация презентация = multi_presentations.Открыть (@"C:\ppt\RevisedKaizenTemplate.Rev1.pptx");
строка presentation_text = "";
for (int i = 0; i & lt; презентация.Слайды.Граф; i++)
{
по каждому элементу (ВАР элемент в презентации.Слайды[i + 1]. фигуры)
{
var shape = (PowerPoint.Форма) деталь;
если (форма.HasTextFrame == MsoTriState.msoTrue)
{
если (форма.Текстовый фрейм.Содержащей Текст == MsoTriState.msoTrue)
{
var textRange = форма.Текстовый фрейм.TextRange;
var text = textRange.Текст;
presentation_text += текст + " ";
}
}
}
}
PowerPoint_App.Бросить();
Приставка.Метода WriteLine(presentation_text);
Приставка.Линия чтения();
}
}
}

[no name]

"как читать данные ppt на сервере", либо установите office на свой сервер (вероятно, не поддерживается), либо найдите библиотеку, которая будет читать файлы power point без установленного office.

RaultKlawas

Как уже упоминалось ранее, одним из способов было бы использование Office Interop, но это не рекомендуется на сервере из-за различных проблем, которые могут возникнуть (например, мертвые блокировки). Вместо этого вы могли бы использовать это c# или vb.net библиотека для powerpoints, он может позволить вам читать как PPT, так и PPTX файлы данных.

2 Ответов

Рейтинг:
18

Jochen Arndt

Вы должны установить powerpoint на сервере, если вы хотите использовать Office interop.

В противном случае вам нужна библиотека, способная читать файлы PPT.

Если ваши файлы являются файлами OpenXML (расширение pttx), вы можете использовать Open XML SDK 2.5 для Office[^].

То Как получить весь текст во всех слайдах презентации (Open XML SDK)[^] похоже, что вы хотите.


Рейтинг:
1

Dave Kreskowiak

Проблема использования любого офисного приложения через Interop заключается в том, что оно не поддерживается в неинтерактивном сеансе входа в систему, то есть в веб-приложении или сервисном приложении Windows.

Если вы собираетесь извлекать данные из любого офисного документа, гораздо лучше использовать OpenXML SDK, а не interop.