技術情報ブログ
Power Platform
2021.12.22

Power Apps の添付ファイルをダウンロードすることなくブラウザ上で閲覧する方法

Power Apps の添付ファイルをダウンロードすることなくブラウザ上で閲覧する方法

こんにちは。アーティサン株式会社の池内です。

Power Appsで入力フォームを作成する際、DataCardを利用すると簡単に入力項目を並べることができて便利ですね。
特に、添付ファイルのDataCardを挿入するだけでファイル添付機能をアプリに導入することができる点は良くできています。

しかし、登録した添付ファイルを Power Apps から開こうとすると、下の画像のようにファイルのダウンロードが始まります。

Power Appsキャンバスアプリ上で添付ファイルをクリックした時の動作
Power Apps キャンバスアプリ上で添付ファイルをクリックした時の動作

ファイルを開くたびにダウンロードしていては、後でファイルを削除する手間が生じるため不便です。

本記事では、添付ファイルをダウンロードすることなくブラウザ上で閲覧する方法を解説します。

 

実装方法(添付ファイルをブラウザ上で閲覧)

以下の手順で機能を実装します。

次項より順を追って説明します。

 

添付ファイルの DataCard 直下にギャラリーを配置する

まず、添付ファイル一覧を作成したい画面(本記事では DetailScreen1 を選択)を開き、
ツールバーから挿入ギャラリーを選択します。
ギャラリーが、 DetailScreen1 直下に配置されました。

続いてこのギャラリーを 添付ファイル_DataCard2 内に移動させます。
方法としてはギャラリーを切り取り、ツリービューにある 添付ファイル_DataCard2
三点リーダをクリック貼り付けを行います。
(もし 添付ファイル_DataCard2 がない場合、フォームのフィールドの編集から追加してください。)

Power Apps_Gallary1の移動前
Gallary1の移動前(Gallary1がDataForm1と同じレイヤーに配置されている)
Power Apps_Gallary1の移動後
Gallary1の移動後(Gallary1が添付ファイル_DataCard2直下に配置された)

ギャラリーを挿入できたら、ギャラリーの表示を調整しましょう。
SubTitle パーツと右側の NextArrow パーツは削除します。

その後、ギャラリーの項目を添付ファイルにするために、Items プロパティにThisItem.添付ファイルを代入してください。
最後に、ラベルのtext プロパティにThisItem.DisplayNameを代入すると、添付ファイルの名前が表示されます。

Power Apps_添付ファイルの DataCard 直下に作成したギャラリー
作成したギャラリー

 

ギャラリーのOnSelect プロパティに Office Online を呼び出す数式を埋め込む

続いて、ギャラリーをクリックしたとき、ブラウザ上で添付ファイルを開く仕組みを実装します。

ギャラリーのOnSelectプロパティに以下の数式を代入してください。

Launch(ThisItem.AbsoluteUri & "?web=1")

Launch関数は、Webページを立ち上げるための関数です。

ThisItem.AbsoluteUriは添付ファイルのURIです。
ここにURLパラメータとして?web=1を追記することで、添付ファイルをOffice Onlineで開くように指定します。

ただし、今の状態でギャラリーをクリックしてもOnSelectが実行されません。
これは、フォーム内の DataCard は、 FormModeView の場合OnSelect が動作しない仕様だからです。

今回の場合、DetaiForm1 はディスプレイフォームを用いているため、FomeMode を View から変更することができません。

そこで、添付ファイル_DataCard2 DisplayModeEdit に変更することで、OnSelectを動作させるよう修正します。

Power Apps_DataCard プロパティを修正
DataCard プロパティを修正

 

拡張子に応じたアイコンを表示する

これまでの操作で目的は達成できましたが、見た目をより良くするためにもう一工夫します。
ファイルの種類をひと目で把握できるように、拡張子に応じたアイコンを表示させましょう。

まず、 Power Apps にアイコン用の画像を登録します。左端のメディアをクリックし、アップロードから画像を登録してください。

Power Apps_アイコン画像をアップロードすることで、その画像をPower Apps内に配置できるようになる
画像をアップロードすることで、その画像をPower Apps内に配置できるようになる

その後、ギャラリーの画像を選択し、 Image プロパティに以下の数式を代入します。

Switch(
    Last(Split(ThisItem.DisplayName, "." )).Result,
    "xlsx", Excel,
    "docx", Word,
    "pptx", PowerPoint,
    "pdf",PDF
)

別途アイコンを用意し、数式に追記することで、他の拡張子に対応することも可能です。

これにて完成です。添付ファイルをクリックするとOffice Onlineが起動し、ブラウザ上で中身を閲覧できるようになりました。

Power Apps_Chromeにて Office Online が起動
Chromeにて Office Online が起動

 

あとがき

本記事では、Power Apps の添付ファイルをダウンロードすることなくブラウザ上で閲覧する方法をご紹介しました。

フォームやギャラリーなどを含む様々なコントロールを組み合わせて機能を実現することは、Power Apps の開発の醍醐味の1つです。
ご紹介した内容を再現するだけでなく、それを応用して自分に必要な機能の実装に繋げていただければ幸いです。

また、Officeファイルがダウンロードされる仕様は Power Apps だけでなく、SharePoint など他のサービスでも発生することがあります。?web=1の追記は随所で使えますので、こちらも参考にしてください。

最後までお読みいただき、ありがとうございました。

 

 

Azure SQL DatabaseやPower AppsとSharePointなどの開発担当:池内佑哉

池内佑哉

大手部品製造会社に新卒で入社したものの、部内でどんどん人が辞めていく流れに危機感を感じわずか2年でIT未経験のままアーティサンへ。
IT業界の荒波に溺れかけながらもなんとかしがみつき、気が付けば人に指示を出す側に回っていました。
趣味は殺陣にミュージカル、歌に作曲、謎解きにボードゲーム、紅茶とコーヒーとワインなど……とにかく色々なことに手を出しては、ちょこちょこアウトプット(舞台への出演や曲やボードゲームの製作など)を出しています(職業病?)
たまにはゆっくり温泉旅行にでも行きたい……♨

シェアする
記事カテゴリ
最新記事
2025.04.30

Power Apps, Power Automate で作る NFC タグを活用したアプリ例

2025.04.16

Power Apps で NFC タグを使ってみる

2025.04.02

Copilot Studioで作成したコパイロットをTeams に追加する方法

2025.03.19

SharePoint リストで主キーを実装し、比較してみた

2025.03.12

SharePointのデザインをもっとおしゃれに!(X-SP Design | SharePoint デザイン拡張サービスのご紹介)(4) サンプルの紹介その2

SharePointEF CoreMarker Clustererキャンバスアプリメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更生成系AIExcelマイグレーションRANK()関数DatePickerfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBCopilotPower AutomateFramework CoreDynamics 365 SalesDropdownnest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携licenseC#Attribute directivesMicrosoft Translatorview入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続添付ファイルコントロールattributeO/Rマッパーマーカークラスタリングライブラリビュー動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローファイルサイズvalidationazure sql databasetailwindcssアクセス制限collectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binフルリモートワークローコードCase式マルチテナント承認コレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールごみ箱アーティサンAngularHTTP Requestドロップダウンメニューリマインド複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseアクセス許可ArtisanAccessCSSBreakpointObserverSet承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSharePoint Framework転職InfoPathxUnitメディアクエリForAllform差出人アプリdesignconcat関数ファイル勉強表示SPFx主キーMatTable.Net Core 3.1スマホUpdateContextエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替サンプルCopilot StudioAngular MaterialVSCodePCロードマップインポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者samplePowerAppsデータ構造.Net Core Test Explorerレスポンシブ技術カスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列X-SPNFCタグモデル駆動型アプリSortByColumns関数Dataverse for Teams入門ItcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StylePowerAutomatePower AppsTypeScriptitem関数初心者情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者StudioPower PlatformHTMLGoogle Maps中級者メッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日AI
PageTop
ページトップに戻る