如何获取电子表格以打开Excel而不是浏览器窗口?

时间:2020-03-06 14:35:42  来源:igfitidea点击:

如果调用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中打开文件。