現在、イントラネットで共有Excelシートへのリンクを配置したいという問題が発生しています。残念ながら、通常のhref="http:..."
リンクは、サーバー自体にある共有シートでの作業を有効にする代わりに、自動的に開いてローカルマシンに保存します。
私はここを少し読んで、次のような解決策を見つけました:file://///SERVER/PATH/Excel.xls
しかし残念なことに、そのソリューションは何もしません。
該当する場合:私のサーバーバージョンはWindows Server 2012です
HTTPはステートレスプロトコルです。つまり、ユーザーがhttp経由でイントラネットからファイルをダウンロードすると、元のファイルではなくコピーがダウンロードされます。ユーザーが行った変更はコピーにのみ表示され、同じワークブックのコピーがロードされて、変更が異なる可能性があります。あなたはそれを望まない!
また、...ユーザーはどのように変更をアップロードしますか?
ネットワーク上に共有フォルダーを作成し、そこにワークブックを配置する必要があります。次に、イントラネットのfile:///SERVER/PATH/FILE.xls
リンクで<a />
形式を使用して、サーバー上の実際のファイルにユーザーを誘導できます。
file:///
パス形式に慣れるために、デスクトップで簡単なHTMLドキュメントを作成することから始めることをお勧めします。例えば
<html>
<head />
<body>
<a href="file:///SERVER/PATH/FILE.xls">Click</a>
<body>
<html>
これをメモ帳に保存し、拡張子を.txt
から.html
に変更します。
file:///
パスを直接Windowsエクスプローラーのアドレスバーに入力して、上記のHTMLドキュメントに頼ることなくパスをテストすることもできます。
[〜#〜]残念ながら[〜#〜]!ブラウザーのデフォルトの動作は、リンクを開くのではなく(ローカルリソースであっても)常にダウンロードするようです。そのため、実際にリンクを開く場合は、ブラウザーのイントラネットのアクセス許可を変更して、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)の前にms-Excel:ofe | uを追加することで、ブラウザにExcel(インストールされている場合)を開くように指示できます。
<a href="ms-Excel:ofe|u|http:...xls">Open in Excel</a>