我在旧系统中有一些 ole2 格式的 ole 文件。我认为这些是 office word 或 excel & 嵌入对象(例如图片)。如果我用 docx 或 xlsx externsion 重命名文件,它会说文件已损坏。
我可以用一些现有的 C# 库提取 ole 文件吗?并将其保存为word或excel文档?
笔记:
- 我认为 OlePres\d\d\d 流是嵌入 ole 对象。
- Ole 流说它是一个嵌入文件而不是链接。
- compObj 流指示它的文件类型。例如 Microsoft Word 文档
- 对于包类型 ole 文件,我按照以下博客成功从 ole10native 流中提取文件 - https://eigenein.wordpress.com/2011/08/03/how-to-extract-ole-attachment-body-from -ole10native 流/
更新:(可能的解决方案)
对于旧样式,例如 xls、doc,它只需将 ole 文件重命名为这些扩展名即可。但是有些文件无法通过 MS Office 打开,但通过 Libre Office 可以成功打开。
对于新样式,例如 xlsx、docx。它可以提取包流并保存为 xlsx 或 docx。文件。