4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SharePoint Online のドキュメントライブラリでプレビュー(読み取り専用)のリンクを作成してみた

Last updated at Posted at 2021-09-29

###概要説明
SharePoint Online に保存されたドキュメントファイルを読み取り専用(プレビュー)で開くリンクを作成する方法です。
image.png

上記のリンクをクリックすると読み取り専用(プレビュー)で開くことができます。
image.png

複数のメンバーで共有しているドキュメントライブラリの場合、普通に開くと編集モードで開くので、他の人が、見るだけのつもりでも、意図せず編集してしまう場合があります。それを防ぐために、プレビュー(読み取り専用)で開くリンクです。
下図のように、メニューで「プレビュー」を選択すればいいのですが、うっかり普通に編集モードで開いてしまう人も多いので、リンクを作成してみました。(編集したい場合は、通常通りに開けば編集もできます)
image.png

###プレビュー(読み取り専用)リンクの作成方法
では、作成方法です。
まず、「列の追加」で、1行テキストを選択し、適当なフィールド名の列を追加します。
image.png

この例では、「PreviewLink」というフィールド名としました(フィールド名はなんでもOKです)
次に、「この列の書式設定」を開きます。

image.png

左下の「詳細モード」をクリックします。
image.png

以下の JSON の書式設定を貼り付けて保存します。

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "a",
  "txtContent": "[$FileLeafRef]",
  "style": {
    "font-size": "120%",
    "text-decoration": "none"
  },
  "attributes": {
    "target": "=if([$FSObjType]=='1','_self','_blank')",
    "href": "=if([$FSObjType]=='1',[$FileRef],'AllItems.aspx?id='+[$FileRef]+'&parent='+substring([$FileRef],0,indexOf([$FileRef],[$FileLeafRef])-1))"
  }
}

image.png

すると、以下のように、プレビューのリンクが表示されます。
image.png

あとは、列の位置を適当に変更してください。

###解説

以下のようなリンクでドキュメントを開くとプレビューモードで開くことができます。
この例では
 テナント: XXXXXXXXXX.sharepoint.com
 サイト名: TeamsTest
 ドキュメントライブラリ名: TestPreviewDoc
 ファイル名: プレゼンテンション.pptx
の場合のリンクです。

https://XXXXXXXXXX.sharepoint.com/sites/TeamsTest/TestPreviewDoc/Forms/AllItems.aspx?id=/sites/TeamsTest/TestPreviewDoc/プレゼンテーション.pptx&parent=/sites/TeamsTest/TestPreviewDoc/

※2021/09/29 時点で動作確認したものです。今後、仕様変更により動作しなくなる場合がありますのでご了承ください。

このリンクを JSONの書式設定で強引に作成しています。
$FileDirRef の値が取得できればもっとスッキリ書けるのですが、取得できなかったので、かなり無理やりのコードです😅
一応、フォルダ下のファイルにも対応しています。
もっとスマートなコードが書ける方は教えてください。

idea.toString(); さんがすでに同様のことを、もっとスマートに実現されていました orz
ありがたく参考にして修正しました。idea.toString(); さんありがとうございます。
ただし、そのままでは、フォルダへの移動には対応していないので、対応するように改善を加えています。

JSON書式設定およびプレビュー表示については以下を参考ください。
 https://docs.microsoft.com/ja-jp/sharepoint/dev/declarative-customization/column-formatting
 https://qiita.com/Momomo_ai/items/58bf768fb83bddfbdca1
 https://idea.tostring.jp/?p=5410

変更履歴
2021/10/02 idea.toString() さんのコードを参考にしてシンプルにしました
2021/09/30 フォルダをクリックした際にフォルダに移動するよう JSON書式設定 を修正しました

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?