如何从字节数组中创建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;      
}

据我所知,没有直接的方法可以做到这一点。Interop Libs一词无法从字节流中读取。除非您正在使用大量(或大量)文件,否则我建议您简单地使用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);

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

如果您仍然想以一种打算的方式来求解它,我建议您在此线程中的答案。

最新更新