通常在一个办公环境中客户机系统比较复杂,会出现同时使用多个版本的OFFICE办公软件的情况,由于OFFICE2007及以上版本使用的是全新的文档格式,OFFICE2003对此并不支持,文档控件在调用过程中就有可能出现文件存取错误或者提示转码的情况。但如果采用限定所有的办公客户机都使用同一版本的OFFICE的方法,并不容易和现实,因此就需要在办公系统集成兼容上寻求解决办法。
目前针对这种情况,通常有两种解决方案:
方案一:
1.在项目里预先创建空白的OFFICE2003格式的文件模板,如normal.doc、normal.xls等。
2.此后在用文档控件新建空白文档时,需要通过OnFileCommand事件来截获文件菜单的新建命令,并打开在上一步预先定义好的文件模板。
3.如果需要打开本地文件,也需要通过OnFileCommand事件来截获文件菜单的打开命令,并结合input file控件来控制只能打开doc、xls这些格式的文件(具体方法可以参考示例)。
4.这样在办公系统里面运行的就可以保证是OFFICE2003格式的文件,从而让各个版本的OFFICE都能够正常打开访问。
方案二:
通过文档控件提供的SaveAsOtherFormatToURL或者SaveAsOtherFormatFile方法替换SaveToURL、SaveToLocal方法来进行提交保存,该方法只比SaveToURL方法多一个参数,即需要指定一个兼容格式代码,值为5。
通过这个方法也就可以保证各个版本的OFFICE都可以正常访问文件。
但使用这个方法,需要注意的是客户机可能会出现如下图的提示对话框
这是因为另存为兼容格式的方法需要在本地临时目录里进行文件的转换,但当前用户对临时目录的操作权限不够所致。所以需要对以下两个目录为该用户设置允许修改和编辑的权限:
C:\Windows\Temp
(win7)C:\Users\当前系统用户名\AppData\Local\Temp\NTKOFTmpFiles
(XP)C:\Documents and Settings\Administrator\Local Settings\Temp\NTKOFTmpFiles
|