c# - 如何从字节数组创建 Microsoft.Office.Interop.Word.Document 对象,而不将其保存到磁盘?

标签 c# ms-word office-interop

如何使用 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/

相关文章:

c# - 可以在 C# 4.0 中创建多类型 lambda 函数的单一多类型集合吗?

c# - 在 C# 中使用 CodeDom 生成嵌套命名空间

excel - 编辑嵌入工作簿中的 Word 文档并另存为副本

asp.net - 如何在 ASP.NET 生成的 Word 文件中嵌入图像

用于打开 MSG 文件的 C# Outlook 互操作和 OpenSharedItem

c# - 在 SQL Server 2008 中实现(日期 - 时间增量)

c# - 使用 CombineLatest 关联多个组的三个事件流

Rmarkdown 输出到 word 创建一个表而不是两个

vb.net - GetOccurrence总是抛出异常

c# - 可以将事件的 Microsoft Word 窗口转换到 WPF 窗口吗?