通过正常打开excel文件htmllink
Open excel file through normal html link
我目前遇到一个问题,我想将 link 放入我们内部网中的共享 excel sheet。
不幸的是,正常的 href="http:..."
link 会自动打开并将其保存到本地计算机,而不是在服务器本身的共享 sheet 上启用工作。
我仔细阅读了这里并找到了如下解决方案:file://///SERVER/PATH/Excel.xls
但遗憾的是,该解决方案没有任何作用。
如果相关:我的服务器版本是 Windows Server 2012
HTTP 是一种无状态协议。这对您来说意味着,当您的用户通过 http 从 Intranet 下载文件时,他们下载的是副本,而不是原始文件。他们所做的任何更改只会出现在他们的副本中,然后您最终会得到同一工作簿的大量副本,其中包含不同的、可能重叠的更改。你不想要那个!
还有...您的用户将如何上传他们的更改?
您需要在您的网络上创建一个共享文件夹并将工作簿放在那里。然后,您可以在 Intranet 上的 <a />
link 中使用 file:///SERVER/PATH/FILE.xls
格式将您的用户定向到服务器上的实际文件。
我建议您先在桌面上创建一个简单的 html 文档,以熟悉 file:///
路径格式。
例如
<html>
<head />
<body>
<a href="file:///SERVER/PATH/FILE.xls">Click</a>
<body>
<html>
将其保存在记事本中并将扩展名从 .txt
重命名为 .html
。
您还可以直接在 windows 资源管理器的地址栏中键入 file:///
路径,这样就可以测试路径,而无需求助于上述 html 文档。
不幸的是!似乎浏览器的默认行为是总是下载 link 而不是打开它(即使它是本地资源),所以如果你真的想打开它,那么你必须求助于将你的浏览器 Intranet 权限更改为允许 JS 访问本地资源,然后允许您使用下面的技术。
本文(http://www.codeproject.com/Articles/113678/How-to-execute-a-Local-File-using-HTML-Application)使用
<script type="text/javascript" language="javascript">
function RunFile() {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
}
</script>
打开记事本。您可以使用带有 Excel.exe (https://support.office.com/en-za/article/Command-line-switches-for-Excel-321cf55a-ace4-40b3-9082-53bd4bc10725) 的命令行参数来告诉它文件路径是什么...
Excel.exe "C:\PATH\Excel.xls"
您可以通过在您的 Excel 文件 Url。
<a href="ms-excel:ofe|u|http:...xls">Open in Excel</a>
如果您尝试在 excel 中打开本地文件,请使用下面的 link。
<a href="ms-excel:ofe|u|file:///d:/folder/aaa.xlsx">Open in Excel</a>
注意:文件路径要有正斜杠
我目前遇到一个问题,我想将 link 放入我们内部网中的共享 excel sheet。
不幸的是,正常的 href="http:..."
link 会自动打开并将其保存到本地计算机,而不是在服务器本身的共享 sheet 上启用工作。
我仔细阅读了这里并找到了如下解决方案:file://///SERVER/PATH/Excel.xls
但遗憾的是,该解决方案没有任何作用。
如果相关:我的服务器版本是 Windows Server 2012
HTTP 是一种无状态协议。这对您来说意味着,当您的用户通过 http 从 Intranet 下载文件时,他们下载的是副本,而不是原始文件。他们所做的任何更改只会出现在他们的副本中,然后您最终会得到同一工作簿的大量副本,其中包含不同的、可能重叠的更改。你不想要那个!
还有...您的用户将如何上传他们的更改?
您需要在您的网络上创建一个共享文件夹并将工作簿放在那里。然后,您可以在 Intranet 上的 <a />
link 中使用 file:///SERVER/PATH/FILE.xls
格式将您的用户定向到服务器上的实际文件。
我建议您先在桌面上创建一个简单的 html 文档,以熟悉 file:///
路径格式。
例如
<html>
<head />
<body>
<a href="file:///SERVER/PATH/FILE.xls">Click</a>
<body>
<html>
将其保存在记事本中并将扩展名从 .txt
重命名为 .html
。
您还可以直接在 windows 资源管理器的地址栏中键入 file:///
路径,这样就可以测试路径,而无需求助于上述 html 文档。
不幸的是!似乎浏览器的默认行为是总是下载 link 而不是打开它(即使它是本地资源),所以如果你真的想打开它,那么你必须求助于将你的浏览器 Intranet 权限更改为允许 JS 访问本地资源,然后允许您使用下面的技术。
本文(http://www.codeproject.com/Articles/113678/How-to-execute-a-Local-File-using-HTML-Application)使用
<script type="text/javascript" language="javascript">
function RunFile() {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
}
</script>
打开记事本。您可以使用带有 Excel.exe (https://support.office.com/en-za/article/Command-line-switches-for-Excel-321cf55a-ace4-40b3-9082-53bd4bc10725) 的命令行参数来告诉它文件路径是什么...
Excel.exe "C:\PATH\Excel.xls"
您可以通过在您的 Excel 文件 Url。
<a href="ms-excel:ofe|u|http:...xls">Open in Excel</a>
如果您尝试在 excel 中打开本地文件,请使用下面的 link。
<a href="ms-excel:ofe|u|file:///d:/folder/aaa.xlsx">Open in Excel</a>
注意:文件路径要有正斜杠