如何创建从字节数组Microsoft.Office.Interop.Word.Document对象,

2019-07-03 14:19发布

如何创建一个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;      
}

Answer 1:

还有据我知道这样做的没有直接的方法。 在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);

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

如果你仍然想寻找到一个方法来解决它,你就打算的方式,我建议你在回答这个线程。



文章来源: How to create Microsoft.Office.Interop.Word.Document object from byte array, without saving it to disk?