加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 从ASP.NET在Office Web Apps中打开excel / word

发布时间:2020-12-15 22:26:37 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET Web应用程序托管在Azure上,由我们公司内部使用.在本网站上,我保留了一些我希望公司员工能够点击的电子表格和单词文档,并直接在Microsoft Office Office中打开他们可以查看和编辑它们的Office Web Apps.这与登录到SkyDrive并点击文件非常相似
我有一个ASP.NET Web应用程序托管在Azure上,由我们公司内部使用.在本网站上,我保留了一些我希望公司员工能够点击的电子表格和单词文档,并直接在Microsoft Office Office中打开他们可以查看和编辑它们的Office Web Apps.这与登录到SkyDrive并点击文件非常相似.这是我要找的:

要求:

>用户应该可以直接在浏览器中编辑文档并保存.
>我的ASP.NET Web应用程序应该能够获取文档的列表并显示它们.
>我的ASP.NET Web应用程序应该能够允许用户上传新的文档
>用户不必多次登录(即只需要登录到我们内部的ASP.NET Web应用程序).

我试过的
我似乎无法弄清楚如何做到这一点,这里有一些我想到的尝试和尝试.

>使用SkyDrive API:将文档保存在SkyDrive中,在员工之间共享文档,并使用SkyDrive / Live API登录并打开文档.这对我们无效,因为SkyDrive不允许您共享文档而不使其完全公开(即,具有链接的任何人都可以查看/编辑它们).他们必须在内部保留.
>使用SkyDrive Pro:SkyDrive pro具有更好的共享凭据的好处.您可以与特定用户分享内容,只有该用户(即他们需要登录才能查看/编辑它).不幸的是,Live API不支持SkyDrive Pro,因此我无法直接从ASP.NET应用程序访问文件.
> Sharepoint:通过将文档保存在文档库和使用SharePoint Client中,我认为可能是SharePoint.我想我可以specify user credentials to obtain a list of documents in the Document Library,但是我不知道我可以在Office Web中打开这些文档之一,而不用再打扰他们再次登录到SharePoint网站.特别是如果自己的个人登录超时?我必须在浏览器中不断使用SharePoint重新输入我的SharePoint密码,当我们与ASP.NET应用程序集成时,我不希望这样做.

如果Microsoft将Office Web Apps集成到Azure中,可能会允许您打开存储在Blob Storage中的Excel和Word文档.但这是不可能的.

任何人都有其他想法?

解决方法

这是一种旧技术,它只能在Internet Explorer中使用,但我认为它是优雅的.请注意它已被弃用.

你开始安装Office Web Components OWC,google搜索应该给你.然后,对于电子表格,您添加一个这样的对象

<object classid="clsid:0002E551-0000-0000-C000-000000000046" id="Spreadsheet1" width="1100" height="900">
                <param name="DataType" value="XMLURL" />
                <param name="AllowPropertyToolbox" value="1" />
                <param name="AutoFit" value="1" />
                <param name="CalculationPoco" value="-4105" />
                <param name="Caption" value="" />
                <param name="DisplayColumnHeadings" value="0" />
                <param name="DisplayGridlines" value="-1" />
                <param name="DisplayHorizontalScrollBar" value="1" />
                <param name="DisplayOfficeLogo" value="0" />
                <param name="DisplayPropertyToolbox" value="0" />
                <param name="DisplayRowHeadings" value="0" />
                <param name="DisplayTitleBar" value="1" />
                <param name="DisplayToolbar" value="0" />
                <param name="DisplayVerticalScrollBar" value="-1" />
                <param name="DisplayWorkbookTabs" value="1" />
                <param name="EnableEvents" value="-1" />
                <param name="MaxHeight" value="90%" />
                <param name="MaxWidth" value="90%" />
                <param name="MoveAfterReturn" value="-1" />
                <param name="MoveAfterReturnDirection" value="-4121" />
                <param name="RightToLeft" value="0" />
                <param name="ScreenUpdating" value="1" />
                <param name="EnableUndo" value="1" />

                <p>OWC required.</p>
            </object>

然后,您可以通过javascript获取对象,并从数据库或任何您想要的操作值.

exlObj = document.all.Spreadsheet1;
    exlObj.XMLURL ="/Excel/Whatever.xml";
    exlObj.ActiveSheet.Unprotect();
    exlObj.Range('Sheet1!$A1').Value = 5;

请注意,当您设置xml-url时,必须将Excel保存为2003 xml格式.
我不知道它是否退出作为一项新技术.

但是它已经被淘汰了等等.所以我猜想一个更纯粹的解决方案也是必须存在的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读