Чтение данных от .doc или .docx и вставка в DB
Вопрос
Продавец предоставляет контент, который необходимо вставить в БД. Содержание в основном вопросы с вариантами и объяснениями. Пример ниже.
=========================================
1) Что такое столица Великобритании?
1] Лондон 2] Париж 3] Берлин 4] Эдинбург
Решение: бла -бла -бла
Ответ: вариант 1
==========================================
В приведенном выше формате есть сотни вопросов, и поставщик поставляет его в формате .doc или .docx. Все эти вопросы необходимо ввести в базу данных, и я должен автоматизировать процесс, чтобы данные были считываться от слова DOC и введены в DB.
Как лучше всего это сделать? Я предпочитаю использовать C#, и у меня уже есть код, который принимает пользовательские объекты и вставляет его в соответствующие таблицы. Теперь все, что я хочу, это прочитать слово DOC и заполнить эти объекты. Любые указатели будут полезны.
Спасибо за ваше время!
Ваше здоровье
Решение
Вам нужно ссылаться и использовать объект COM "Библиотека объектов Microsoft Word XX" где XX - некоторая версия в зависимости от версии Office, которую вы используете.
Затем вам нужно использовать Word.ApplicationClass, чтобы открыть документ Word и получить доступ к его данным. Часто предлагается скопировать весь документ Word в буфер обмена, а затем получить доступ к нему оттуда.
Что-то вроде:
Word.ApplicationClass wordApp = new Word.ApplicationClass();
object file = filepath;
object nullobj = System.Reflection.Missing.Value;
Word.Document doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);
doc.ActiveWindow.Selection.WholeStory();
doc.ActiveWindow.Selection.Copy();
IDataObject data = Clipboard.GetDataObject();
txtFileContent.Text = data.GetData(DataFormats.Text).ToString();
doc.Close();