Как получить тему и заголовок из документа Word (не открывая его)? - PullRequest
3 голосов
/ 24 марта 2011

Я хотел бы прочитать поля заголовка и темы из документа Word, но не хотел бы, чтобы при этом запускались Word.

Если в проводнике Windows я отображаю заголовок и столбцы темы, а затем перехожу к папке, в которой есть документы Word, отображается эта информация. Какой механизм используется для этого (кроме расширений Shell) , потому что он быстрый (но я не знаю, нужен ли вам Word для этого, чтобы он работал) , поэтому я Угадаю, что это не запуск Word и открытие каждого документа.

Я нашел ссылку на Dsofile.dll, которую, я полагаю, я мог бы использовать, но работает ли она для файлов .doc и .docx и это единственный способ?

Ответы [ 2 ]

5 голосов
/ 25 марта 2011

Ну ... как можно предположить, что время файла ".doc" проходит, вот один способ получить тему и заголовок из файла ".docx" (или ".xlsx" файл в этом отношении) .

using System;
using System.IO;
using System.IO.Packaging; // Assembly WindowsBase.dll

namespace ConsoleApplication16
{
  class Program
  {
     static void Main(string[] args)
     {
        String path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
        String file = Path.Combine(path, "Doc1.docx");

        Package docx = Package.Open(file, FileMode.Open, FileAccess.Read);
        String subject = docx.PackageProperties.Subject;
        String title = docx.PackageProperties.Title;
        docx.Close();
     }
  }
}

Надеюсь, это кому-нибудь пригодится.

1 голос
/ 24 марта 2011

Вы также можете прочитать его через XML: Как извлечь информацию из файлов Office с использованием форматов и схем файлов Office

Вот другой пример о томчитать документ Word программно.

Так или иначе вам придется заглянуть внутрь файла в какой-то момент!

...