【发布时间】:2017-06-20 11:32:28
【问题描述】:
plainText 已编码 word 文档 base64 字符串
byte[] buffer = Convert.FromBase64String(plainText);
using (Stream ms = new MemoryStream())
{
ms.Write(buffer, 0, (int)buffer.Length);
}
我尝试使用 OpenXML SDK 打开 word 文档
WordprocessingDocument wordDoc = WordprocessingDocument.Open(stream, true)
但它会抛出文件包含损坏的数据错误。
我用这个字节[] 缓冲区创建了一个word文档 但我想要实现的是,在不创建(保存)word 文档的情况下阅读文档中存在的内容。 我错过了什么?
【问题讨论】:
-
如果你想用 interop 阅读它,我认为你必须保存它(也许之后马上删除它?)
-
嗨@EpicKip 感谢您的及时回复。我正在从 web api 获取 base64 字符串,它是一个编码为 base64 字符串的 word 文档。我正在尝试阅读其中的内容。这些都必须在客户端完成,所以我无法保存。有没有可能的方法来实现它?
-
我认为它不可能看到:stackoverflow.com/questions/18184616/… 但我认为如果它在临时 appdata 文件夹中,您可能可以在客户端保存:
Path.GetTempPath(); -
是的@EpicKip 我明白了。但是是否有任何解决方法可以从编码的 base64 word 文档字符串中读取内容?在运行时?因为当我将base64字符串转换为字节数组并生成了一个word文档时。我可以看到内容。如果您能找到解决方案,这将是一个很大的帮助。
标签: c# arrays base64 openxml-sdk memorystream