admin管理员组

文章数量:1538748

2024年3月19日发(作者:)

关于使用iWebOffice控件打开文档失败

问题的说明

一、 前言

在使用iWebOffice网络文档控件进行文档流转应用的过程中,有时会遇到文档无法打

开的问题(这些问题有的可能是所有的机器都无法打开某个或某些文档,有的可能是部分

机器无法打开某个或某些文档)。这个问题看似杂乱,其实是有规律有原因的。

二、 问题原因阐述

进行在线编辑应用时,打开文档的操作受三方面的因素影响:文档本身、客户端的OF

FICE软件环境、iWebOffice控件。这三方面任何一种发生异常都会造成打开文档失败的情

况。

2.1 文档出现问题的情况

1)为什么控件中打开失败的文档在本地可以打开?

首先要说明一下,OFFICE软件自身提供了两种调用方式。一种是本地打开OFFICE软

件的应用程序方式(Application,简称APP),另一种是对象连接与嵌入方式(Object Li

nking and Embedding,简称OLE)。iWebOffice系列控件调用OFFICE就是用的第二种

方式。

这两种调用方式是微软提供的两套独立的调用模式,OLE方式下可以实现大部分APP

方式下的应用(注意只是大部分),在实践中我们发现有一些接口的调用在OLE方式下是不

行的。除了接口调用上的差别外,我们还发现APP的方式下稳定性明显好于OLE调用方式,

我们甚至怀疑微软没有针对OLE调用方式做足够的测试。

网址: 电话:400-6776-800 第1页 / 共7页

2)为什么产生问题文档?

OFFICE稳定性差导致的最大威胁就是保存时容易产生异常文档,因为控件保存的文档

本质上是通过OFFICE保存出来再由控件提交给服务器保存。而OFFICE软件也是程序在运

行时也可能因为各种原因而出现问题,所以OFFICE保存出异常文档是不可避免的。

3)问题文档有哪些表现形式

这些问题文档有时可能异常的很厉害连APP方式都无法打开,这种情况可以定义为“文

档损坏”,损坏一旦严重到APP方式OFFICE都不能打开时就彻底的损失了、无法再修复。

有时可能是轻微的错误,这种情况可以定义为“文档异常”,APP有着更好的稳定性所以可

能可以打开(并且OFFICE不会报错,所以看上去就像没有异常),而这种异常的文档可能

在OLE下就没那么幸运。因此我们有时会看到控件中无法打开的文档,但是下载到本地却

可以打开,就是APP和OLE的稳定性差异导致的。

另外,也不是异常了的文档在OLE下都会无法打开,真实的情况是不同的OFFICE软件

版本下都会有差异。很可能在A机器可以打开文档,在B机器就无法打开,所以要从根源上

解决问题还要具体分析(分析思路之后详述)。OFFICE软件如果加上SP包后就有非常多的

版本,仅从OFFICE2003开始就有:OFFICE2003、OFFICE2003 SP1、OFFICE2003 SP

2、OFFICE2003 SP3、OFFICE2007、OFFICE2007 SP1、OFFICE2007 SP2、OFFICE2

007 SP3、OFFICE2010、OFFICE2010 SP1。并且不同时期安装的补丁包里面的子版本

号也非常众多,无法有效评估究竟哪种环境最稳定。因此最妥当的方式是修复文档(修复

方法之后详述)。

2.2 OFFICE环境异常的情况

如果OFFICE文档正常,而客户端的OFFICE环境异常时(比如安装的是精简版的OFFI

CE,或者OFFICE中有部分功能损坏)也会出现文档无法打开的情况。这种情况出现几率很

低,一般是整片区域就出现1、2台电脑不正常,而且这样的电脑环境中可能会所有的OFFI

网址: 电话:400-6776-800 第2页 / 共7页

本文标签: 文档方式控件