SWT OleClientSite:如何在Excel中加载XML文件?

时间:2009-01-26 13:38:39

标签: excel swt ole

我有一个OfficeML格式的Excel文件,MyData.xls。自从我从Office 2003升级到Office 2007后,我收到一条警告消息,指出文件内容与文件扩展名不匹配。看来OfficeML现在必须有扩展名'xml'。

在我的应用程序中,我使用OleClientSite在OleFrame对象中显示文件。如果我将文件扩展名更改为“xml”,则表示Excel未启动。如果我将扩展名保留为'xsl',那么我会收到上述警告消息。

如何使用Excel强制在OleFrame中打开带有'xml'扩展名的文件?

3 个答案:

答案 0 :(得分:2)

最简单的解决方案是切换回2003格式,不需要对应用程序进行任何更改。为此,请将扩展名设置为* .xls打开文件。当出现警告提示时(“...你想立即打开文件吗?”),继续打开(这是一个警告,以确保你不会无意中打开一个启用宏的文件)。进入Excel并且文件打开后,只需将其保存为* .xls即可。这可以通过转到“Office按钮/另存为/ Excel 97-2003工作簿”来完成。

现在,更难的解决方案是升级您的应用程序以处理新的OfficeML格式。我不知道你正在使用的组件,但它可能仍适用于新标准中的一些二进制部分(最值得注意的是VBA项目),但是你将不得不解压缩并开始阅读XML文件。

如果您还没有这样做,请创建一个新的Excel工作簿,将其另存为* .xlsx(2007格式),然后在资源管理器中将其扩展名更改为* .zip。打开它,看看周围。为了更深入地了解文件,我将开始消化这个MSDN article

答案 1 :(得分:1)

也许我错过了什么,但你不应该只使用.xslx作为扩展名吗?我假设通过OfficeML,您正在引用Office Open XML

答案 2 :(得分:1)

<?mso-application progid="Excel.Sheet"?>应该出现在使用的XSL模板中。 以下链接清楚地解释了如何包含处理指令。我必须做类似的事情,它对我有用。

http://www.shareyourwork.org/roller/ralphsjavablog/entry/generating_excel_sheets_with_xslt