如何从字节数组创建Microsoft.Office.Interop.Word.Document对象,而不将其保存到磁盘?

如何从字节数组创建Microsoft.Office.Interop.Word.Document对象,而不使用C#将其保存到磁盘?

 public static int GetCounterOfCharacter(byte[] wordContent) { Application objWord = new Application(); Microsoft.Office.Interop.Word.Document objDoc = new Document(); //objDoc = objWord.Documents.Open(("D:/Test.docx"); i want to create document from byte array "wordContent" return objDoc.Characters.Count; } 

据我所知,没有直截了当的方法。 Word互操作库不能从字节流中读取。 除非您正在使用大量(或大量)文件,否则我建议您只使用tmp文件:

 Application app = new Application(); byte[] wordContent = GetBytesInSomeWay(); var tmpFile = Path.GetTempFileName(); var tmpFileStream = File.OpenWrite(tmpFile); tmpFileStream.Write(wordContent, 0, wordContent.Length); tmpFileStream.Close(); app.Documents.Open(tmpFile); 

我知道这不是你正在寻找的答案,但在这样的情况下(做你真正想做的事需要相当多的时间和烦躁不安)可能值得考虑开发时间是否超过运行时间性能。

如果你仍然想要按照你想要的方式来解决它,我会在这个post中推荐答案。