このページの本文へ

FIXER Tech Blog - Power Platform

FIXER cloud.config Tech Blog

Power AppsでWordやExcel、PowerPointを表示する方法

2023年02月16日 10時00分更新

文● あおい/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Power AppsでWordやExcel、PowerPointを表示する方法」を再編集したものです。

 こんにちは、あおいです。

 Power Platform触りたての頃、Power AppsでWordやExcel、PowerPoint等のファイルを表示できたらなぁ~と思っていましたが、結局なーんもやらずに終わってしまいました。

 今はPower Platformの知見もかなり身に付いているので、改めて調べてみるとそれっぽい方法がありました。

 そこで、今回はPower AppsでWordやExcel、PowerPointを表示する方法について紹介したいと思います。

事前準備

 SharePointのドキュメントライブラリを新規作成し、各ファイルを追加します。

手順

1. データソースにSharePointのドキュメントライブラリを追加します。

2. 空の垂直ギャラリーを画面左側に配置し、データソースにSharePointのドキュメントライブラリを指定します。

 また、ラベルをギャラリーに挿入し、TextプロパティにThisItem.Nameを入力して、ドキュメント名を表示します。

3. 新しい画像をギャラリーの左側に配置し、Imageプロパティに以下のコードブロックを貼り付けます。

If(  // pdf icon
 EndsWith(ThisItem.'File name with extension', "pdf"),
 "data:image/svg+xml;utf8, %3Csvg%20%20viewBox%3D%270%200%202048%202048%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3Cpath%20d%3D%27M1920%201664h-128v384H128v-384H0V640h128V0h1243l421%20421v219h128v1024zM1408%20384h165l-165-165v165zM256%20640h1408V512h-384V128H256v512zm1408%201024H256v256h1408v-256zm128-896H128v768h1664V768zM448%20896q40%200%2075%2015t61%2041%2041%2061%2015%2075q0%2040-15%2075t-41%2061-61%2041-75%2015h-64v128H256V896h192zm0%20256q26%200%2045-19t19-45q0-26-19-45t-45-19h-64v128h64zm448-256q53%200%2099%2020t82%2055%2055%2081%2020%20100q0%2053-20%2099t-55%2082-81%2055-100%2020H768V896h128zm0%20384q27%200%2050-10t40-27%2028-41%2010-50q0-27-10-50t-27-40-41-28-50-10v256zm384-384h320v128h-192v128h192v128h-192v128h-128V896z%27%20fill%3D%27%23a4262c%27%3E%3C%2Fpath%3E%3C%2Fsvg%3E",

 // Word icon
 EndsWith(ThisItem.'File name with extension', "docx"),
 "data:image/svg+xml;utf8, %3Csvg%20%20viewBox%3D%270%200%202048%202048%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3Cpath%20d%3D%27M2048%20475v1445q0%2027-10%2050t-27%2040-41%2028-50%2010H640q-27%200-50-10t-40-27-28-41-10-50v-256H115q-24%200-44-9t-37-25-25-36-9-45V627q0-24%209-44t25-37%2036-25%2045-9h397V128q0-27%2010-50t27-40%2041-28%2050-10h933q26%200%2049%209t42%2028l347%20347q18%2018%2027%2041t10%2050zm-384-256v165h165l-165-165zM320%201424h161q2-8%209-43t18-83%2021-103%2022-101%2016-76%208-31l7%2030q7%2030%2017%2077t23%20100%2023%20103%2019%2084%2010%2043h160l148-672H834l-80%20438-100-438H502l-96%20440-86-440H170l150%20672zm320%20496h1280V512h-256q-27%200-50-10t-40-27-28-41-10-50V128H640v384h397q24%200%2044%209t37%2025%2025%2036%209%2045v922q0%2024-9%2044t-25%2037-36%2025-45%209H640v256zm640-1024V768h512v128h-512zm0%20256v-128h512v128h-512zm0%20256v-128h512v128h-512z%27%20fill%3D%27%230078d4%27%3E%3C%2Fpath%3E%3C%2Fsvg%3E",

 // Excel icon
 EndsWith(ThisItem.'File name with extension', "xlsx"),
 "data:image/svg+xml;utf8, %3Csvg%20%20viewBox%3D%270%200%202048%202048%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3Cpath%20d%3D%27M2048%20475v1445q0%2027-10%2050t-27%2040-41%2028-50%2010H640q-27%200-50-10t-40-27-28-41-10-50v-256H115q-24%200-44-9t-37-25-25-36-9-45V627q0-24%209-44t25-37%2036-25%2045-9h397V128q0-27%2010-50t27-40%2041-28%2050-10h933q26%200%2049%209t42%2028l347%20347q18%2018%2027%2041t10%2050zm-384-256v165h165l-165-165zM261%201424h189q2-4%2012-23t25-45%2029-55%2029-53%2023-41%2010-17q27%2059%2060%20118t65%20116h187l-209-339%20205-333H707q-31%2057-60%20114t-63%20112q-29-57-57-113t-57-113H279l199%20335-217%20337zm379%20496h1280V512h-256q-27%200-50-10t-40-27-28-41-10-50V128H640v384h397q24%200%2044%209t37%2025%2025%2036%209%2045v922q0%2024-9%2044t-25%2037-36%2025-45%209H640v256zm640-1024V768h512v128h-512zm0%20256v-128h512v128h-512zm0%20256v-128h512v128h-512z%27%20fill%3D%27%230b6a0b%27%3E%3C%2Fpath%3E%3C%2Fsvg%3E",

 // PowerPoint icon
 EndsWith(ThisItem.'File name with extension', "pptx"),
 "data:image/svg+xml;utf8, %3Csvg%20%20viewBox%3D%270%200%202048%202048%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3Cpath%20d%3D%27M2048%20475v1445q0%2027-10%2050t-27%2040-41%2028-50%2010H640q-27%200-50-10t-40-27-28-41-10-50v-256H115q-24%200-44-9t-37-25-25-36-9-45V627q0-24%209-44t25-37%2036-25%2045-9h397V128q0-27%2010-50t27-40%2041-28%2050-10h933q26%200%2049%209t42%2028l347%20347q18%2018%2027%2041t10%2050zm-384-256v165h165l-165-165zM368%20752v672h150v-226h100q52%200%2097-15t78-46%2053-72%2020-97q0-56-17-97t-50-67-76-39-97-13H368zm1552%201168V512h-256q-27%200-50-10t-40-27-28-41-10-50V128H640v384h397q24%200%2044%209t37%2025%2025%2036%209%2045v922q0%2024-9%2044t-25%2037-36%2025-45%209H640v256h1280zM1536%20640q79%200%20149%2030t122%2082%2083%20123%2030%20149h-384V640zm-128%20128v384h384q0%2080-30%20149t-82%20122-123%2083-149%2030q-33%200-65-6t-63-18V792q31-11%2063-17t65-7zm-804%20300h-86V883h90q47%200%2074%2020t27%2070q0%2052-28%2073t-77%2022z%27%20fill%3D%27%23ca5010%27%3E%3C%2Fpath%3E%3C%2Fsvg%3E",

 // Other filetype icon,
 "data:image/svg+xml;utf8, %3Csvg%20%20viewBox%3D%270%200%202048%202048%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3Cpath%20d%3D%27M1243%200l549%20549v1499H128V0h1115zm37%20219v293h293l-293-293zM256%201920h1408V640h-512V128H256v1792zm256-896V896h896v128H512zm0%20256v-128h896v128H512zm0%20256v-128h896v128H512z%27%20fill%3D%27%237a7574%27%3E%3C%2Fpath%3E%3C%2Fsvg%3E"
)

 EndsWith関数でファイル名の末尾にある拡張子を識別して、各アイコン画像を表示しています。

 こちらの無料のPower AppsアイコンセットのSVGコードを使用して、アイコンを描画します。

4. PDF Viewerを画面右側に配置し、Documentプロパティに以下のコードブロックを貼り付けます。

If( EndsWith(Gallery1.Selected.'File name with extension', "pdf"),
Gallery1.Selected.'Link to item',
Substitute(
 Gallery1.Selected.サムネイル.Large,
 "/thumbnail",
 "/pdf"
))

 ドキュメントをPDFに変換する仕組みとして、ギャラリーからファイルのサムネイルを選択すると、画像を提供するSharePoint APIのウェブアドレスが返されます。

 もし、PDFをそのまま表示する場合は、SharePoint APIを呼び出す必要はないので、If文の分岐条件で拡張子をPDFであるかを判定して、PDFファイルの完全なURLを渡すようにします。

 今回はPower AppsでWordやExcel、PowerPointを表示する方法について紹介させていただきました。

 久々にPower Appsを触りましたが、こんなことも出来るのかと驚きました(笑)

 最近、弊社でPower Platformの案件が増えているらしいので、DX推進の風潮もあってかノーコード・ローコードはまじで強いのかも。

参考資料
PDF viewer control in Power Apps | Microsoft Docs

【補足】

 PowerAppsの開発環境であるPowerApps Studioを開くと、多くの場合日本語で表示されます。

 本記事では英語版で紹介していますので、もしPower Apps開発画面を英語化したい場合は以下の記事を参考にしてみてください。

Power Apps開発画面を英語化して開発生産性を高める | ギークフジワラ

あおい/FIXER
「初心者の方にも分かりやすく」をモットーにブログ執筆。
普段はC#とSQL Server、Power Platformを触ってます。サウナ、ZARD、K-POPが好きです。
執筆書籍『Microsoft Power Platformローコード開発[活用]入門 - 現場で使える業務アプリのレシピ集』

[転載元]
 Power AppsでWordやExcel、PowerPointを表示する方法

カテゴリートップへ

この連載の記事