如何使电子表格在打开时使用Excel而非浏览器窗口?

10
如果您调用JavaScript的window.open并传递一个.xls文件的url,它会在一些机器上在浏览器窗口中打开。如何将其强制转换为Excel?
11个回答

3
只有用户的计算机可以“强制”将其转换为Excel。 也就是说,如果您发送了正确的MIME类型并且用户拥有Excel,则99%的情况下,只要他们批准,它就会在Excel中打开。
而且只有服务器才能发送正确的MIME类型。 您传递给JavaScript window.open调用的文档类型对此没有影响。 实际上,调用window.open最多只会打开一个多余的窗口。
最好只需使用链接到文档。 只要您的服务器发送的MIME类型是application / x-excel或application / x-msexcel,这几乎总是会促使浏览器打开带有Excel文档的新窗口。

1
如果只是一个静态文件,并且您正在使用Linux上的Apache,请检查名为/etc/mime.types的文件,并确保其中有以下行以将.xls文件扩展名与正确的MIME类型相关联:
application/vnd.ms-excel    xls

我猜那个文件的位置可能在不同的系统上有所不同,但在我的运行RHEL4的服务器上,它位于/etc/mime.types。


0

据我所知,仅使用JavaScript无法实现此功能。如果您在服务器端有某种脚本语言,则可以更改标题以强制下载。

这里有一个简单的PHP教程,但您可以轻松找到您喜欢的语言的教程。


0

你不能强制将它导入Excel。你可以让浏览器按照其配置的方式处理它,或者尝试强制下载文件并让用户从他们的桌面打开。要强制下载,请搜索“force download”和你的服务器端语言(PHP、ASP.NET、JSP等)。


0
我认为你不能这样做:出于安全原因,你不能使用Javascript调用外部程序。假设用户已经安装了Excel,你可以打开一个没有地址栏的新窗口,让用户“产生错觉”,以便在Internet Explorer中打开文件时看起来像是使用Excel打开的。

0

由于安全问题,我认为这在JavaScript中是不可能的,因为没有任何阻止恶意网页打开数十个Excel/Word实例的措施。

您是否可以将超链接设置为.xls的URL,这样用户就会得到通常的下载提示以查看文件。


0
  1. 将http内容类型设置为Excel数据类型:application/vnd.ms-excel
  2. 您不需要重定向到新窗口,但会弹出一个提示框,询问用户是否保存或打开文件。
  3. 关于(2):如果浏览器可以自动启动外部应用程序并自动加载数据而无需用户干预,我会感到担忧。

0

这是每个用户浏览器中的设置,而不是可以通过代码设置的内容。因此,很遗憾您无法控制它。


0

无法做到,因为它取决于客户端机器。

例如,在Windows上,如果您希望始终使用Excel打开它,而不是在浏览器窗口中打开它,则必须打开“我的电脑”,选择“工具”,“文件夹选项”,“文件类型”,选择XLS类型,然后单击“高级”。有两个复选框:在同一窗口中浏览和在原地打开Web文档。取消选中两个复选框,关闭浏览器窗口,再次打开并重试。

但是正如我所说:这取决于客户端,您无法强制执行。


0

您可以使用LaunchinIE来实现此功能,它是一个ActiveX控件,可以使HTML页面启动客户端机器上的任何应用程序,而不会出现安全警告。

该网站引用了以下内容:“终于,Web页面可以启动Word、Excel或任何其他公司应用程序,而不会出现投诉。安全地。”

为此,您需要在用户计算机上安装控件,并将允许执行本地应用程序的URL添加到Windows注册表中。

该网站还引用了以下内容:“为确保安全性,LaunchinIE需要在客户端进行仔细配置;由于此限制,它只适用于内部网络使用。”

我在我们的培训设施中使用LaunchinIE,这样我就可以使用Internet Explorer作为菜单,让用户选择机器设置。然后,LaunchinIE调用一个批处理脚本,以最佳方式配置所选培训的机器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接