如何获取电子表格以打开Excel而不是浏览器窗口?
如果调用javascript window.open并将URL传递给.xls文件,则它会在浏览器窗口中的某些计算机上打开。如何将其强制到Excel中?
解决方案
只有用户计算机才能将其"强制"到Excel中。就是说,如果我们发送正确的mime类型并且用户拥有Excel,那么在99%的时间中,假设他们同意,它将在Excel中打开。
而且只有服务器可以发送正确的mime类型。我们传递给JavaScript window.open调用的文档类型对此无效。实际上,调用window.open最多只会打开一个多余的窗口。
最好仅使用<a href="foo.xls">
链接到文档。并且只要服务器发送的是MIME类型的" application / x-excel"或者" application / x-msexcel",这几乎总是会推动浏览器打开带有Excel文档的新窗口。
AFAIK,我们不能仅凭JavaScript做到这一点。如果服务器端具有某种脚本语言,则可以更改标头以强制下载。
这是一个使用PHP的简单教程,但是我们可以轻松地用自己喜欢的语言找到一个。
我们不能强制将其导入Excel。我们可以允许浏览器以配置方式进行处理,也可以尝试强制其下载文件,并允许用户从桌面打开。要强制下载,请搜索"强制下载"和服务器端语言(PHP,ASP.NET,JSP等)
我认为我们不能:出于安全原因,不能使用Java脚本调用外部程序。假设用户已经安装了Excel,则可能要打开没有地址栏的新窗口,以使用户"幻想"该文件已在Internet Explorer中用Excel打开。
由于安全问题,我不认为这可能来自javascript,无法阻止流氓网页打开数十个excel / word实例。
我们是否不能设置指向.xls URL的超链接,那样用户将获得通常的下载提示来查看文件。
- 将http内容类型设置为Excel数据类型:application / vnd.ms-excel
- 我们不需要重定向到新窗口,但是会弹出一个对话框,要求用户保存或者打开文件。
- 关于(2):我担心浏览器是否可以启动外部应用程序并将数据自动加载到其中,而无需用户干预。
这是每个用户浏览器中的设置,而不是可以通过代码设置的设置。因此,很遗憾,我们无法对此进行控制。
如果它只是静态文件,并且我们正在Linux上使用Apache,请检查是否存在一个名为/etc/mime.types的文件,并确保该文件中包含以下行以将.xls文件扩展名与正确的MIME类型相关联:
application/vnd.ms-excel xls
我猜该文件的位置可能会因系统而异,但在运行RHEL4的服务器上的/etc/mime.types中。
我们不能,因为它取决于客户端计算机。
例如,在Windows上,如果要使其始终使用Excel而不是在浏览器窗口中将其打开,则必须打开"我的电脑","工具","文件夹选项","文件类型",选择XLS类型,然后单击"高级"。有两个复选框:在同一窗口中浏览和在适当位置打开Web文档。取消选中两者,关闭浏览器窗口,然后再次打开并重试。
但是正如我所说:这取决于客户端,我们不能强制执行。
我们可以使用LaunchinIE(一种ActiveX控件)来执行此操作,该控件将使HTML页面能够启动客户端计算机上的任何应用程序,而不会出现安全警告。
网站引用:"最后,网页可以启动Word,Excel或者任何其他公司应用程序而不会受到投诉。安全。"
为此,我们必须在用户计算机上安装控件,还必须将允许执行本地应用程序的URL添加到Windows注册表中。
该站点的另一句话是:"为了确保安全,需要在客户端上仔细配置LaunchinIE;由于此限制,它仅适合Intranet使用。"
我在培训机构中使用LaunchinIE,因此可以将Internet Explorer用作菜单,让用户选择机器设置。然后,LaunchinIE调用一个批处理脚本,该脚本将计算机配置为最佳地支持所选的培训。
打开打开已保存的Excel文件时,以下是使此弹出窗口恢复的步骤。
- 右键单击Windows [START]按钮,然后选择资源管理器以打开Windows资源管理器窗口将打开。
- 从菜单中选择"工具" "文件夹选项"?选择"文件类型"选项卡,然后向下滚动文件列表。 ?左键单击以突出显示XLS Microsoft Excel Worksheet文件扩展名,然后单击"高级"按钮。
- 在"编辑文件类型"窗口中,取消选中"在同一窗口中浏览"选项。
- 单击确定按钮以接受更改。
- 开始一个新的浏览器会话。下次在收件箱中打开Excel电子表格时,系统会提示我们以下窗口。在选中此类型的文件之前,请务必保留"始终询问"。单击"打开"按钮现在应在Excel中打开文件。