如何创建一个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);
我知道这是不是你要找的答案,但在这样的情况下(做你真正想做的事情,需要相当多的时间和坐立不安)考虑是否开发时间远远超过运行时,它可能是值得性能。
如果你仍然想寻找到一个方法来解决它,你就打算的方式,我建议你在回答这个线程。
文章来源: How to create Microsoft.Office.Interop.Word.Document object from byte array, without saving it to disk?