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

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);

我知道这不是您要寻找的答案,但是在这种情况下(要做您真正想做的事情需要花费很多时间和烦躁),可能值得考虑开发时间是否超过运行时间表现。

如果您仍想研究一种解决方案,请在this线程中推荐答案。

关于c# - 如何从字节数组创建Microsoft.Office.Interop.Word.Document对象,而不将其保存到磁盘?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13227828/

10-13 08:12