PowerAutomate でWord Template を使ってExcelのリストをPDF化する
主題そのまま、Excel である受講生の出席簿リストから受講生毎に1シートとしてPDFで発行する。
Power Automate を使う理由は、PowerAppsからのトリガーにて受講生本人に作成させたいのと、電子印を押させたいから。
全体Flow
こういうFlowを組んだ↓↓
この時に、配列として複数行のデータを引用する必要があるが、Select(選択)アクションを使って↓↓この様に引用する
この場合、「Date」 に引用されたデータはExcel内部では日付形式(yyyy-MM-dd) であるが、PowerAutomate で引用されるとシリアル番号形式になってしまう。
日付をシリアル番号から日付形式に直す
結論から言うと↓↓こう書く
formatDateTime(addDays('1899-12-31',int(item()?['11_Date of Study'])),'yyyy-MM-dd')
式 | 説明 |
---|---|
formatDateTime | 日付の形式を変更。'yyyy-MM-dd' で2020-07-27 の様に表記 |
addDays | 基準日(エクセルの場合1900-1-1が最初の日(= 1)なので、1899-12-31)にシリアル番号を足していく |
int | 文字列シリアル番号を数字に変換する |
item | 今回ハマった。Select アクションの中なので bodyでもなく、valueでもなく、item()? で列名を指定して引用する |
ちなみに、時刻は HH: mm: ss と表記されてしまうので、「秒」が不要な場合は同様に formatDateTime()を使用して HH:mm に変更する。
Word Template を使うには
Microsoft Power Automate Tutorial - Microsoft Word Connector Pt. 2 (https://youtu.be/VYs-SnflUpQ)
↑↑ この動画を観るのが分かりやすい。