【发布时间】:2021-12-08 08:24:41
【问题描述】:
我在旧系统中有一些 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-stream/
更新:(可能的解决方案)
对于旧样式,例如xls,doc,它可以将 ole 文件重命名为这些扩展名,并且可以正常工作。但是有些文件不能通过MS Office打开,但是可以通过Libre Office打开成功。
对于新样式,例如xlsx,文档。它可以提取包流并保存为 xlsx 或 docx。文件。
【问题讨论】:
-
对于旧样式,例如xls,doc,它可以将 ole 文件重命名为这些扩展名,并且可以正常工作。但是有些文件无法通过 MS Office 打开,但通过 Libre Office 可以成功打开。对于新风格,例如xlsx,文档。它可以提取包流并保存为 xlsx 或 docx。文件。
标签: c# ms-office libreoffice ole openmcdf