9

如何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;      
}
4

1 回答 1

14

据我所知,没有直接的方法可以做到这一点。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);

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

如果您仍然想寻找一种方法来按照您想要的方式解决它,我会推荐这个线程中的答案。

于 2012-11-05T07:53:21.493 回答