无法使用 ActiveX 控件从我们的 Web 应用程序查看或编辑 ms office 软件中的文件

Posted

技术标签:

【中文标题】无法使用 ActiveX 控件从我们的 Web 应用程序查看或编辑 ms office 软件中的文件【英文标题】:Unable to view or edit the files in ms office software from our web app using ActiveX control 【发布时间】:2019-10-15 08:18:18 【问题描述】:

我将 Microsoft Office 与我的 Web 应用程序集成在一起,可以通过单击在相应 Microsoft 软件中打开文件的编辑按钮来查看和编辑上传的文件。例如,如果上传了一个 word 文件,然后单击编辑按钮,该文件应在 Microsoft word 软件中打开。我正在使用 ActiveX 控件来实现此功能,以便在 IE 上使用以下代码打开文档,

spEditObj.EditDocument(FileURL);

我已经验证 FileURL 在单击编辑按钮时是正确的,断点控件出现在此处,此 FileURL 值正确,此函数 [ spEditObj.EditDocument(FileURL) ] 返回 true 值,但仍然是文件内容没有显示出来。

问题是,当我点击编辑按钮时,它会打开 Microsoft Word 应用程序,但文件内容未显示

我猜是因为MS office安装不正确或者是缺少一些dll文件。

你能建议我解决这个问题吗?

谢谢。

【问题讨论】:

【参考方案1】:

请检查文件权限,是否有读写权限。

我已经使用以下代码创建了一个示例,它在我的机器上运行良好,您可以参考它:

    <script src="Scripts/jquery-1.10.2.js"></script>
    <script type="text/javascript"> 
        $(function ()  
            $('a').on('click', function () 
                var file = $(this).attr('href');

                // This is what does the work.
                try 
                    try 
                        // get Word Active-X Object if Word is open.
                        var word = GetObject('', "Word.Application");
                    
                    catch (e) 
                        // create new Word Active-X Object.
                        var word = new ActiveXObject("Word.Application");
                    

                    word.Visible = true; // Make sure Word is visible.
                    word.Documents.Open(file); // Open the file you want.
                
                catch (e) 
                    alert(e.description);
                
                // End work.

                return false;
            );
        ); 
    </script>
    <a href="<local file path>">Readiness.docx</a>

[注意]我们需要启用 Initialize and script active x 控件未标记为脚本安全(IE 浏览器工具菜单 -> Internet 选项 -> 安全 -> 自定义级别 -> 启用 Initialize and script active x 控件是未标记为安全脚本),请检查并启用它。

【讨论】:

【参考方案2】:

是的.. 这个问题似乎是由于 WebDAV 目录的身份验证问题造成的。通过将 WebDAVDir 的身份验证从基本身份验证更改为 Internet 信息服务 (IIS) 管理器的 Windows 身份验证,我自己解决了这个问题。

【讨论】:

以上是关于无法使用 ActiveX 控件从我们的 Web 应用程序查看或编辑 ms office 软件中的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 vb.net 从 MS Access DB 表单中找出 Activex 控件

当前线程不在单线程单元中,因此无法实例化 ActiveX 控件

MFC设计器中的“无法访问ActiveX控件类型库”错误

ActiveX 控件版本控制和签名

我可以在 activex 控件中使用 CView 派生类吗?

如何获得嵌入式 IE ActiveX 控件的版本?