将 ole 文件另存为 office 文档

Posted

技术标签:

【中文标题】将 ole 文件另存为 office 文档【英文标题】:Save ole file as office document 【发布时间】:2021-12-08 08:24:41 【问题描述】:

我在旧系统中有一些 ole2 格式的 ole 文件。 我认为这些是 office word 或 excel & 带有嵌入对象(例如图片)。 如果我用 docx 或 xlsx externsion 重命名文件,它会说文件已损坏。

我可以用一些现有的 C# 库提取 ole 文件吗?并将其保存为 word 或 excel 文档?

OLEFileStructure PNG

注意:

我认为 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。文件。 【参考方案1】:

对于旧样式,例如xls,doc,它可以只需将 ole 文件重命名为这些扩展名,它就可以工作。 但是有些文件无法通过 MS Office 打开,但通过 Libre Office 可以成功打开。所以我使用 Libre office 命令行工具将其转换为相同的格式,例如soffice --convert-to docx *.docx --outdir ../Converted 然后就可以通过MS Office打开了。

对于新样式,例如xlsx,文档。它可以提取包流并保存为 xlsx 或 docx。文件。

【讨论】:

问答都与标记为 C# 的项目无关。 Ans 问题和答案都不清楚或没有说明。

以上是关于将 ole 文件另存为 office 文档的主要内容,如果未能解决你的问题,请参考以下文章

office2007(word2007)另存为pdf文档

ExportAsFixedFormat Visio文件另存为其他几种格式的处理

如何把TXT格式的文件转化成HTML格式

在c#中使用word为啥在关闭时总是显示“另存为”对话框

html 页面怎么转化为word文档

是否可以制作保存按钮(不另存为按钮)以将文档保存在特定路径中?