2015-10-16 2 views
0

У меня есть встроенный текстовый шаблон документа в моем проекте, я добавил его в качестве ресурса (Resources.resx -> Добавить ресурс -> Добавить существующий файл), и теперь я хочу, чтобы открыть это что-то вроде этогоКак открыть встроенный документ слова ресурса?

Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application(); 
Document document = application.Documents.Open(Properties.Resources.MyDoc); 

Но к сожалению, Microsoft.Office.Interop.Word.Application не работает с байтовыми массивами, и я не могу установить MyDoc.

ответ

2

Word может открывать только файлы, которые существуют в файловой системе, он не может работать полностью из-памяти.

ли что-то вроде этого:

String fileName = Path.GetTempFileName(); 
File.WriteAllBytes(fileName , Properties.Resources.MyDoc); 
application.Documents.Open(fileName ); 

Затем, когда вы обнаруженное Слово было закрыто, удалите файл:

File.Delete(fileName); 

Это может быть идея (по соображениям производительности) для встраивания документ Word как внедренный ресурс вместо массива Byte[] в файле resx, например:

Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly(); 
System.IO.Stream resourceStream = thisExe.GetManifestResourceStream("MyDoc.docx"); 
// copy the stream to a new FileStream, then open Word as-before 
Смежные вопросы