ふる雨はあとなく晴れて

暇人の雑記・備忘録

【Power BI】Sharepointリストの画像列を表示する

PowerBIでSharepointリストの画像列(イメージ[image]列)に設定した画像を表示したいけど、うまくいかず試行錯誤したときの備忘録。

・Sharepointの列は下記の形式で列を定義

PowerBIでリストデータを読み込むと、列のデータとしてはjson形式なので

下記のようなデータとして取得される。

{
    "type": "thumbnail",
    "fileName": "******",
    "nativeFile": {},
    "fieldName": "******",
    "serverUrl": "https://******.sharepoint.com",
    "fieldId": "******",
    "serverRelativeUrl": "/******/******/SiteAssets/Lists/***/***.jpg",
    "id": "******"
}

 

このままレポートのマトリックス等で画像列データを表示させても
当然画像としては表示されず。。

「画像URL」の形であればちゃんと表示されるので
実際に画像データが保存されている場所をjsonデータの

「serverUrl」と「serverRelativeUrl」を使って「画像URL」の列を作ります。

 

以下、リストに作成した画像列「PrivatePic」を例に記載しています。

 

①Power BIデスクトップで読み込んだリストに対してクエリの編集を開く

 

②列を選択し、変換⇒JSON

 

③JSON形式に変換されたら列の展開ボタンをクリックし
 今回使用する「serverUrl」と「serverRelativeUrl」をチェックしOK

④展開した列「PrivatePic.serverUrl」と「PrivatePic.serverRelativeUrl」が作成される。
(元の列名を~のチェックを入れているので
 PrivatePic.が展開した列名の頭についています)

 

⑤さらにカスタム列を追加して、この2つの列の値を結合した
画像URL用のカスタム列を作る(新しい列名には適切な名前をつける)

画像は列名「カスタム」のままになっていますが、今回はPicURLという列名で作成

生成された列「PicURL」の値を一つコピーしてブラウザからアクセスし
画像が表示されるか確認する。
画像が正しく表示されたらクエリエディターでの編集は保存して終了。

 

⑥BIのレポートで表示するには④で追加した列のデータカテゴリを画像のURLにしておく

⑦レポートのマトリックスなどに④で追加した列を設定する

 

Power BI DesktopではSharepoint上にある画像への直リンクでは認証が通らないため
正しく画像URLを渡せても表示がされません(仕様)

そのため、画像データを正しく表示させるにはレポートを発行し

PowerBI Service上で正しく表示されることを確認する必要があります。

 

もっと簡単に表示させる方法あるのかな・・・
画像列のデータがjson形式になる以上は仕方ないですかね。