メインコンテンツへスキップ

Power Automate の Excel 請求書テンプレート: SharePoint リストから入力し、PDF4me を使用してすべての請求書を PDF/A としてアーカイブします

· 1分で読める
SEO and Content Writer

PDF4me Excel - 入力 これは、Excelの請求書テンプレートにJSONデータを入力するPower Automateアクションです。ここでは、新しいSharePointリストアイテムがデータを提供し、Populateアクションがそれをテンプレートのスマートマーカーに書き込み、さらに3つのPDF4meアクションがワークブックを圧縮されたPDF/A形式の請求書に変換し、SharePointが自動的に保存します。

Excelの請求書テンプレートを検索すると、最初のページにはたくさんのテンプレートが表示されます。Microsoft、Vertex42、QuickBooks、Squareなど、どれもデザイン性の高い空白のワークブックを提供していますが、ダウンロードするだけで終わってしまいます。テンプレートへの入力方法については何も説明されていません。実際には、顧客情報をセルにコピーし、PDFにエクスポートし、ファイル名を付けてフォルダに保存するという作業を、請求書1枚ずつ行う必要があるのです。この流れでは、Excelで誰でもデザインできるテンプレートという、これらのテンプレートが持つ利点はそのままに、ダウンロード後の手順をすべて省いてしまっています。

流れの概要
1. When an item is created
SharePoint trigger on the list named Excel Template. Every new row is one invoice.
2. Compose
Reshapes the flat list row into the nested RootData JSON the template expects.
3. Get file content using path
Reads the Excel invoice template from Shared Documents on every run.
4. Excel - Populate
PDF4me Excel. Writes the JSON into the smart markers on sheet 1.
5. Convert to PDF
PDF4me Convert. Renders the populated workbook as Invoice.pdf.
6. PDF - Compress
Optimize Profile Web. Runs before the archival standard is applied.
7. PDF - Create PdfA
Compliance PdfA2b. The step that turns an invoice into a record.
8. Create file
SharePoint writes ExcelArchived.pdf into /Shared Documents/ArchivedExcel.
要約版

データがSharePointリストに格納されると、Power AutomateがそれをJSON形式に変換し、Excelの請求書テンプレートに入力し、ワークブックをPDFに変換し、圧縮し、PDF/A-2b形式に変換し、結果をSharePointフォルダーに書き込みます。8つのアクションで、請求書1件あたり約36秒。しかも、Excelを開く必要はありません。

なぜ?という問いに対する質疑応答​

請求書のテンプレートとしてExcelワークブックを使用する理由は何ですか? なぜなら、請求書のデザインは既にExcelで行われているからです。列幅、セル結合、フォント、罫線などはすべてExcelで設定されているため、レイアウトの所有者はフローに手を加えたりHTMLを学習したりすることなく変更できます。唯一の要件は、値を含む各セルにサンプルテキストではなくスマートマーカーを使用することです。ステップ4では、そのスマートマーカーが具体的にどのように表示されるかを示しています。

なぜこのフローには「構成」アクションが必要なのですか? SharePointリストの行はフラットな構造ですが、テンプレートはそうではありません。リストは2つの明細項目をItem1DescriptionからItem2TaxRateまでの10個の列として格納します。一方、テンプレートにはItems配列の各エントリごとに繰り返される1つの項目行があります。Compose処理によって10個の列が2要素の配列に変換され、その配列によって行が繰り返されるようになります。

請求書を.xlsx形式のままにしておくのではなく、PDF/A形式に変換する理由は何ですか? ワークブックは動的なドキュメントです。開いた人は誰でも数量を変更でき、数式によって異なる合計金額が別のマシンで再計算される可能性があります。一方、PDFは実際に請求された内容を修正したものです。 PDF/A さらに一歩進んで、ページを表示するために必要なものすべて(フォントも含む)を埋め込んでいます。これは、送信後何年も経っても読みやすい状態を保つ必要がある文書にとって、まさに望ましい機能です。

テンプレートをフロー内ではなくSharePointライブラリに保存する理由は何ですか? フローは実行ごとにテンプレートを新たに読み込むため、SharePointでロゴ、色、列の順序などを変更すれば、フローを編集しなくても次の請求書には新しいレイアウトが適用されます。また、SharePointのバージョン履歴にはテンプレートの以前のコピーがすべて保存されているため、レイアウトの変更ミスが発生した場合は、そこから元に戻すことができます。


得られるもの​

入力: SharePointリストの行には、請求書のヘッダー、顧客の詳細、および2つの明細項目が含まれています。 出力: 圧縮されたPDF/A-2b請求書、 ExcelArchived.pdf、 /Shared Documents/ArchivedExcel 同じサイトのフォルダ。

SharePoint リストには Excel Template という名前で、請求書の行が Shyam Prasad-INV、Sarah Brown - INV 01、Larry Wheels - 01、Morris - INV の 4 つあり、列は Title、日付と時刻、DueDate、PONumber、PaymentTerms、CompanyEmail、CompanyAddress、CustomerName、CustomerEmail、CustomerCompany、CustomerAddress、CustomerCityStateZIP、そして Item1 と Item2 の説明、数量、単価、割引、税率となっています。

データソース:請求書1件につき1行、22列のリスト。サンプル出力は、最後の行「Morris - INV」から生成されたものです。

SharePoint ドキュメント ライブラリを開き、ArchivedExcel フォルダーを開くと、Pdf4me Flow アカウントによって数秒前に変更された ExcelArchived.pdf が表示されます。

行が追加されてから数秒後にフローアカウントによってアーカイブされたExcelフォルダ内のExcelArchived.pdfファイル。


必要なもの​

  • パワーオートマタ。 Power Automateを開く標準コネクタを使用したクラウドフロー。SharePointおよびPDF4meコネクタは、プレミアムプランを必要としません。
  • PDF4me APIキー。 APIキーを取得してくださいこのフローでは、PDF4me Excel、PDF4me Convert、PDF4me PDFの3つのPDF4me接続を使用します。1つのキーで3つすべてを認証できます。
  • SharePointサイト Composeマッピングと一致する列を持つリストに加え、テンプレートと出力用のドキュメントライブラリを使用します。キャプチャされたフローでは、リスト「Excel Template」、ワークブック用のフォルダー「/Shared Documents/Excel Template」、請求書用のフォルダー「/Shared Documents/ArchivedExcel」を使用します。
  • Excel請求書テンプレート。 pdf4me-excel-invoice-template.xlsx1枚のシートに、スマートマーカーがすでに配置されています。
  • JSONを構成する。 compose-rootdata.jsonステップ2で取得した正確なRootDataマッピングを貼り付ける準備ができました。
  • 完成した請求書。 excel-archived-invoice.pdfPDF/A-2b、キャプチャされた実行結果と全く同じものです。

まずはサンプルを入手してください。 テンプレートをSharePointライブラリにアップロードし、JSONをComposeアクションに貼り付けてから、最初の実行結果と完成した請求書を比較してください。ドキュメントのプロパティを開くと、PDF/A-2bが宣言されているはずです。正しい出力例を知ることが、自分の実行が実際に正しく行われたかどうかを判断する最も手っ取り早い方法です。


フローの概要​

  1. アイテムが作成されると (SharePoint トリガー) は、指定されたリストを監視します。 Excel Template。
  2. 作曲する 構築する RootData 新しい行からのJSON。
  3. パスを使用してファイルコンテンツを取得します テンプレートを読み込む /Shared Documents/Excel Template。
  4. Excel - 入力 (PDF4me Excel)はJSONをワークシートに結合します 1。
  5. PDFに変換 (PDF4me Convert) はワークブックを次のようにレンダリングします Invoice.pdf。
  6. PDF - 圧縮 (PDF4me PDF) プロファイル最適化機能付き Web。
  7. PDF - PDFAを作成する (PDF4me PDF) コンプライアンス準拠 PdfA2b。
  8. ファイルを作成する (SharePoint) へ /Shared Documents/ArchivedExcel。

フローの概要全体​

Power Automate の実行履歴には、次の 8 つのアクションが順番に成功したことが示されています: アイテムの作成 (0.3 秒)、作成 (0 秒)、パスを使用したファイルコンテンツの取得 (0.5 秒)、Excel への入力 (0.8 秒)、PDF への変換 (10 秒)、PDF の圧縮 (11 秒)、PDF の作成 (11 秒)、ファイルの作成 (2 秒)

サンプル請求書を作成した処理です。変換、圧縮、PDFA作成にはそれぞれ10~11秒かかりますが、SharePointへの書き込み(2秒)を除けば、その他の処理はすべて1秒未満で完了します。請求書1件あたり約36秒を見込んでください。


ステップ1:SharePointリストアイテムが作成されたときにフローをトリガーするにはどうすればよいですか?​

これまでの流れ: まだ何も起きていない。これが引き金だ。

リストの新しい行はそれぞれ1つの請求書を表すため、トリガーはリスト自体です。

  1. 作成する 自動化されたクラウドフロー そして選ぶ SharePoint > アイテムが作成されると。
  2. 設定する:
    • サイトアドレス: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • リスト名: Excel Template

SharePoint トリガー構成​

SharePoint アイテムが作成されたときのトリガーパネル、サイトアドレスは PDF4me Sharepoints at ynoox1.sharepoint.com/sites/PDF4meSharepoints、リスト名は Excel テンプレートに設定、詳細パラメーターは 0 / 1 を表示、SharePoint に接続済み

リストは1つ、トリガーも1つ。リストに組み込まれている「タイトル」列には請求書番号が含まれているため、次のステップでは「番号」を「タイトル」にマッピングします。

ヒント。 式では、リストに表示される名前ではなく、列の内部名を使用します。リストには、という列が表示されます。 日時しかし、トリガーはそれを次のように返します Dateandtimeそして、それがComposeが使用しなければならない名前です。間違った名前でも実行は失敗しません。 ? で triggerBody()?['Dateandtime'] 代わりに静かにnullを返すため、請求書には日付が空欄のまま発行されます。


ステップ2:SharePointのフラットな行をExcelテンプレート用のJSONに変換するにはどうすればよいですか?​

これまでの流れ: SharePointトリガー。

テンプレートは、請求書ヘッダー、会社ブロック、顧客ブロック、および品目リストというネスト構造を想定しています。リスト行はフラットな構造です。Composeは、この2つのブロック間の変換レイヤーとして機能します。

  1. 追加 データ操作 > 作曲する。
  2. これを貼り付けて 入力すべての価値は triggerBody()?['<column>'] リストの1つの列を指す式。
{
"RootData": {
"Invoice": [
{
"Number": "@{triggerBody()?['Title']}",
"Date": "@{triggerBody()?['Dateandtime']}",
"DueDate": "@{triggerBody()?['DueDate']}",
"PONumber": "@{triggerBody()?['PONumber']}",
"PaymentTerms": "@{triggerBody()?['PaymentTerms']}"
}
],
"Company": [
{
"Email": "@{triggerBody()?['CompanyEmail']}",
"Address": "@{triggerBody()?['CompanyAddress']}"
}
],
"Customer": [
{
"Name": "@{triggerBody()?['CustomerName']}",
"Email": "@{triggerBody()?['CustomerEmail']}",
"Company": "@{triggerBody()?['CustomerCompany']}",
"Address": "@{triggerBody()?['CustomerAddress']}",
"CityStateZIP": "@{triggerBody()?['CustomerCityStateZIP']}"
}
],
"Items": [
{
"Description": "@{triggerBody()?['Item1Description']}",
"Qty": "@{triggerBody()?['Item1Qty']}",
"UnitPrice": "@{triggerBody()?['Item1UnitPrice']}",
"Discount": "@{triggerBody()?['Item1Discount']}",
"TaxRate": "@{triggerBody()?['Item1TaxRate']}"
},
{
"Description": "@{triggerBody()?['Item2Description']}",
"Qty": "@{triggerBody()?['Item2Qty']}",
"UnitPrice": "@{triggerBody()?['Item2UnitPrice']}",
"Discount": "@{triggerBody()?['Item2Discount']}",
"TaxRate": "@{triggerBody()?['Item2TaxRate']}"
}
]
}
}

コードビューを構成する​

Power Automate のコード ビューでアクションを構成します。入力は、Invoice、Company、Customer、Items 配列を含む RootData で、各値は Title、Dateandtime、DueDate、PONumber、PaymentTerms、CompanyEmail、CustomerName、Item1Description から Item2TaxRate などの triggerBody 式にマッピングされます。

Invoice、Company、Customerはそれぞれ1要素の配列です。Itemsは2つの要素を持ち、リスト内の各項目列のセットに対応しています。

各テンプレートセルがどのように値を取得するか​

テンプレートセル細胞内のスマートマーカーパスを構成するSharePoint 列
請求書番号(B12)&=RootData.Invoice.Number(noadd)Invoice[0].NumberTitle
日付(B13)&=RootData.Invoice.Date(noadd)Invoice[0].DateDateandtime
提出期限(B14)&=RootData.Invoice.DueDate(noadd)Invoice[0].DueDateDueDate
発注番号(B15)&=RootData.Invoice.PONumber(noadd)Invoice[0].PONumberPONumber
支払条件(B16)&=RootData.Invoice.PaymentTerms(noadd)Invoice[0].PaymentTermsPaymentTerms
メールアドレスと住所(B4、B5判)&=RootData.Company.Email(noadd) そして .AddressCompany[0]CompanyEmail、 CompanyAddress
顧客ブロック(B6~B10)&=RootData.Customer.Name(noadd) そしてさらに4人Customer[0]CustomerName に CustomerCityStateZIP
アイテム行(A19~E19)&=RootData.Items.Description、 .Qty、 .UnitPrice、 .Discount、 .TaxRateItems[0] そして Items[1]Item1 そして Item2 列

Fromブロック(B3)はプレーンテキストです。 PDF4meそのため、すべての請求書で同じ内容になります。テンプレート内の該当箇所を、貴社名に置き換えてください。


ステップ3:フローはどこからExcelテンプレートを読み込むのか?​

これまでの流れ: SharePointトリガーとComposeの組み合わせ。

テンプレートは、ドキュメントライブラリ内の通常のファイルです。フローは実行のたびにこのファイルを読み込むため、その時点でSharePointに存在するレイアウトが使用されます。

  1. 追加 SharePoint > パスを使用してファイルコンテンツを取得します。
  2. 設定する:
    • サイトアドレス: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • ファイルパス: /Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx
    • コンテンツタイプを推測する (高度な): Yes

パス構成を使用してファイルコンテンツを取得する​

SharePoint パスを使用してファイルコンテンツを取得するアクション、サイトアドレス PDF4me SharePoint、ファイルパス /Shared Documents/Excel Template/PDF4me_Excel_SharePoint_Template_.xlsx、詳細パラメーター「コンテンツタイプの推測」を「はい」に設定し、SharePoint に接続します。

リストとテンプレートフォルダはどちらも「Excelテンプレート」という名前ですが、これらは異なるものです。一方はリストであり、もう一方は共有ドキュメント内のフォルダです。


ステップ4:Excel - 入力機能は、Excel請求書テンプレートにどのようにデータを入力しますか?​

これまでの流れ: SharePointトリガー、Compose、およびパスを使用したファイルコンテンツの取得機能。

これは、テンプレートギャラリーがユーザーに任せている作業を実行するステップです。Excel - PopulateはワークブックとJSONデータを受け取り、すべてのスマートマーカーを検索し、一致する値をそのセルに書き込みます。

  1. 追加 Excel - 入力 から PDF4me Excel 繋がり。
  2. 設定する:
    • ファイルの内容: その 体 トークンから パスを使用してファイルコンテンツを取得します
    • JSONデータ: 出力 作曲する (トークンは次のように表示されます) 体)
    • ファイル名: Populate.xlsx
    • ワークシート索引: 1
  3. 開ける 詳細パラメータ そして4つのうち3つを設定しました。
    • 厳密なJSON文字列: Yes
    • 文化と言語環境: en-US
    • 計算式: Yes

Excel - 設定の入力​

PDF4me Excel Populateアクションで、ファイルコンテンツはSharePointのBodyトークンに設定され、JSONデータはComposeのBodyトークンに設定され、ファイル名はPopulate.xlsx、ワークシートインデックスは1、詳細パラメーターは厳密なJSON文字列はい、カルチャと言語設定はen-US、計算式ははいに設定され、PDF4me Excelに接続されています。

処理を担う入力データは2つです。SharePointからのテンプレートバイトとComposeからのJSONデータです。その他はすべてフォーマットとスコープに関するものです。

このテンプレートは2種類のマーカーを使用しており、その違いこそがトリックの全てです。

  • ヘッダーセル 請求書番号など &=RootData.Invoice.Number(noadd). (noadd) 修飾子は値をその場に書き込み、行を挿入することはありません。
  • アイテム行 保持する &=RootData.Items.Description、 &=RootData.Items.Qty など、修飾子なしで続きます。その行は、要素ごとに一度書き込まれます。 Items 配列なので、2つの項目は2つの行を生成し、3つ目の項目は3つ目の行を生成します。

修飾子、ネストされたパス、数式処理を含む完全な文法は、 Excel Populate構文の概要Populateアクション単体でDropboxテンプレートとインラインJSONペイロードを使用する場合は、以下を参照してください。 Power AutomateでJSONからExcelテンプレートにデータを入力する。

ヒント。 Compose 内のすべての値は文字列補間として引用符で囲まれているため、数量と価格はテキストとしてテンプレートに渡されます。 厳密なJSON文字列 設定 Yes これらはテキストのままで、正しく印刷され、このテンプレートに必要なのはそれだけです。行合計またはSUMを追加する場合は、 No つまり、数値のように見える文字列が実際の数値に変換されるということです。そうしないと、SUM関数はそれらをスキップします。なぜなら、Excelはテキストとして保存された数値を合計しないからです。


ステップ5:入力済みのワークブックをPDFに変換するにはどうすればよいですか?​

これまでの流れ: SharePointトリガー、Compose、パスを使用したファイルコンテンツの取得、Excel - 入力。

入力済みのワークブックは実行環境内でのみ存在し、.xlsxファイルとして保存されることはなく、直接コンバーターに渡されます。

  1. 追加 PDFに変換 から PDF4me Convert 繋がり。
  2. 設定する:
    • ファイルの内容: その 出力ファイルの内容 トークンから Excel - 入力
    • ファイル名: Invoice.pdf

PDFへの変換設定​

PDF4me Convert to PDFアクションで、ファイルコンテンツがExcel Populateからの出力ファイルコンテンツトークンに設定され、ファイル名がInvoice.pdfに設定され、PDF4me Convertに接続されています。

出力ファイルの内容は、データが入力されたワークブックです。SharePointに.xlsxファイルとして保存されることはありません。

ヒント。 捕捉された流れが通過する Invoice.pdf ファイル名として指定しても正しく変換されます。 PDF参照に変換 ソースファイルの拡張子を要求しますが、 Invoice.xlsx 自分で構築する方が、より安全な選択肢です。

ページレイアウトはフローではなく、テンプレートで設定してください。 PDFへの変換は、ワークブックのページ設定に従います。サンプルテンプレートはレターサイズの用紙1枚より少し幅が広いため、取り込まれた請求書には1ページ目にA列からD列まで、2ページ目には税率列のみが表示されます。Excelでテンプレートを開き、 ページレイアウト そして設定する 拡大縮小してフィットさせる > 幅 に 1 pageそして、SharePointに保存し直します。それ以降の請求書はすべて、1ページに収まるようになります。


ステップ6:請求書を圧縮してPDF/A形式に変換するにはどうすればよいですか?​

これまでの流れ: すべて「PDFに変換」で処理します。

2つのアクション PDF4me PDF 接続後、まず圧縮を行い、次に認証を行う。この順序を逆にすると、既に認証済みのファイルが圧縮によって書き換えられてしまう可能性がある。

  1. 追加 PDF - 圧縮。
    • ファイルの内容: その 体 トークンから PDFに変換
    • ファイル名: その headers/FileName 前のアクションから引き継がれたトークン
    • プロファイルの最適化: Web
  2. 追加 PDF - PDFAを作成する。
    • ファイルの内容: その 体 トークンから PDF - 圧縮
    • ファイル名: その headers/FileName トークン
    • コンプライアンス: PdfA2b
    • アップグレードを許可する: Yes
    • ダウングレードを許可する: Yes

PdfAパラメータの圧縮と作成​

アクションパラメータここで使用されている値それが制御するもの
PDF - 圧縮プロファイルの最適化Webサイズと忠実度をトレードオフする。画像のないテキストと表だけの請求書は、劣化する要素が少ない。
PDF - PDFAを作成するコンプライアンスPdfA2bISO 19005-2、レベルB。このページは、今後何年経っても、どのビューアでも同じように表示されます。
PDF - PDFAを作成するアップグレードを許可するYes要求されたレベルに到達できない場合、より上位のレベルに処理を移します。
PDF - PDFAを作成するダウングレードを許可するYes完全に失敗するのではなく、より低いレベルで落ち着かせる。
PDF4me PDF Compressアクション(ファイルコンテンツはBodyトークン、ファイル名はヘッダーのFileNameトークン、最適化プロファイルはWebに設定)がPDF4me PDFに接続されています。

Compressは、認証が行われる前に、変換された請求書に対して処理を行います。

PDF4me PDF Create PdfA アクション、ファイル コンテンツは Body トークンに設定、ファイル名はヘッダー FileName トークンに設定、コンプライアンスは PdfA2b、アップグレードは許可、ダウングレードは許可は許可、PDF4me PDF に接続されています。

PdfAの作成は、ドキュメントに対して行われる最後の操作であり、まさにその位置づけにふさわしいものです。

同じペアが、SharePoint に既に存在するファイルに対して同じ作業を実行します。 Power Automate で無人 SharePoint フォルダーを使用して PDF をアーカイブする。


ステップ7:完成した請求書はどこに保存されますか?​

これまでの流れ: Create PdfA を通じてすべてを行います。

最後の処理では、認証済みの請求書を同じSharePointサイトに書き戻します。

  1. 追加 SharePoint > ファイルを作成する。
  2. 設定する:
    • サイトアドレス: PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • フォルダパス: /Shared Documents/ArchivedExcel
    • ファイル名: ExcelArchived.pdf
    • ファイルの内容: その 体 トークンから PDF - PDFAを作成する

SharePoint ファイル構成の作成​

SharePoint の「ファイルの作成」アクション。サイト アドレスは PDF4me SharePoint、フォルダー パスは /SharePoint Documents/ArchivedExcel、ファイル名は ExcelArchived.pdf、ファイル コンテンツは PDF Create PdfA の Body トークンに設定され、SharePoint に接続されています。

PDF4me のすべてのアクションは Body というトークンを出力するため、ラベルだけではどのアクションを選択したかはわかりません。カーソルを合わせるか、コード ビューで body('PDF_-_Create_PdfA') を確認してください。

公開前にこれを変更してください。 ExcelArchived.pdf は固定名なので、新しいリスト項目はすべて同じファイルに書き込まれ、フォルダには最新の請求書以上のものは保存されません。代わりに、行から名前を構築してください。リスト項目IDは定義上一意なので、 concat('Invoice-', triggerBody()?['ID'], '.pdf') 常に機能します。タイトルに請求書番号を使用しても問題ありません。ただし、スラッシュ、コロン、アスタリスク、疑問符など、SharePointがファイル名に使用を拒否する文字が含まれていないことが条件です。


フローを実行して検証する​

  1. 保存 右上の流れ。
  2. リストに新しい項目を追加します。 Excelテンプレート テンプレートで使用されているすべての列に記入してください。
  3. 実行履歴を開いてください。8つのアクションすべてが緑色になっているはずです。変換、圧縮、PDF作成の処理に最も時間がかかっているはずです。
  4. 開ける /Shared Documents/ArchivedExcel そして、PDFファイルが存在し、「変更者」欄にフローのアカウントが表示されていることを確認します。
  5. ファイル自体を開いてリストの行と比較し、そのドキュメントのプロパティでPDF/A宣言を確認します。

キャプチャされた実行からの請求書は37,876バイトです。行をレンダリングします モリス - INV: Invoicing.co の顧客 Morris Luma、日付 2026-09-01、支払期限 2026-09-20、2 つの明細項目、PDF から Excel (数量 60) と PDFA (数量 45)。その XMP メタデータは宣言しています。 pdfaid:part として 2 そして pdfaid:conformance として Bこれは、内側から見たPDF/A-2bです。手順5で説明したページ設定上の理由により、1ページではなく2ページになっています。

実際に何を作ったのですか? 請求書作成パイプラインにおいて、手作業が必要なのはデータの入力のみです。レイアウトは誰でも編集可能なExcelファイルに格納され、データはリスト形式で保存されます。出力は、特に誰かがファイル化を決定しなくても自動的に保存される、自己完結型のアーカイブ用PDFファイルです。このパターンはPower Automateに限定されず、PDF4meのExcelおよびPDF/Aアクションが利用可能なMake、Zapier、n8nなどにも適用できます。


再構築せずに追加できる一般的なバリエーション​

請求書を顧客にメールで送信する
Office 365 Outlookを追加する メール送信(V2) ファイルの作成後、宛先欄にCustomerEmail列を入力し、PDF - Create PdfAで出力された本文を添付してください。そうすることで、顧客はアーカイブされたのと同じPDF/Aファイルを受け取ることができます。
日付を顧客が読みやすい形式で表示してください。
サンプルでは、トリガーが日付を返す形式が2026-09-01であるため、2026-09-01と表示されます。Compose内のDate式とDueDate式をformatDateTimeと「dd MMM yyyy」などのパターンで囲んでください。
行ごとの合計と総計を加算します。
テンプレートに数式を入力し、「厳密なJSON文字列」を「いいえ」に設定して数量と価格が数値として取得されるようにし、「数式を計算する」を「はい」のままにして、変換前に合計が計算されるようにします。
基準を仮定するのではなく、検証してください。
追加 PDFを検証する PdfAの作成後、結果に基づいて分岐処理を行います。すると、変換失敗が監査ログではなく実行履歴に表示されます。

他の請求書作成方法との比較​

各行は代替案を表しています。最後の行はこのフローを示しています。

比較レイアウトを変更できるのは誰ですか?テンプレートへの入力方法アーカイブ形式
手入力のExcelテンプレートとこのフローの比較Excelを使用する人なら誰でもコピー&ペースト、請求書1枚ずつPDF/Aエクスポートオプションが設定されない限り、通常のPDFファイルになります。
Excel VBAマクロとこのフローの比較マクロを維持する人ワークブックが開いているデスクトップで自動的にPDF/A 用にエクスポートが設定されていない限り、通常の PDF になります。
HTMLテンプレートとHTMLからPDFへの変換 この流れとの比較HTMLとCSSに精通している人クラウド上で自動的にPDF
この流れExcelを使用する人なら誰でも自動的に、新しいリスト項目ごとにPDF/A-2b

重要な違いは、最初の2つはレイアウトをExcelに残しつつ、人間が関与する点と、3つ目は人間を排除しつつレイアウトをコードに移行する点です。このフローだけが、その両方を実現しています。


よくある質問​

Excel形式の請求書テンプレートはありますか?​

はい。Excelには請求書テンプレートが付属しています。デスクトップアプリでは、 ファイル > 新しい そして検索する 請求書また、マイクロソフトはオンラインのテンプレートギャラリーでさらに多くのテンプレートを公開しています。これらは手書きで記入することを前提として設計されています。

の この投稿で使用されているテンプレート これは別の用途向けに作られています。値セルにはサンプルテキストの代わりにスマートマーカーが格納されるため、フローで入力できます。既に気に入っている請求書テンプレートを同じ方法で変換できます。デザインはそのままにして、各値をマーカーに置き換えます。 &=RootData.Invoice.Number(noadd)。

Excelデータから請求書を作成する方法は?​

データを行形式で保持し、レイアウトをテンプレートで管理し、それらを組み合わせる処理を実行します。Excel の場合、その処理は Word の差し込み印刷や VBA マクロで行われ、どちらもユーザーのデスクトップ上で実行されます。

このフローでは、行は SharePoint リストに存在し、Compose は 1 つの行を JSON に変換し、 Excel - 入力 テンプレートにマージします。データが既に OneDrive または SharePoint の Excel テーブルである場合、Excel Online (Business) コネクタの テーブルに存在する行を一覧表示します。 アクションは、同じ Compose を内部に供給できます それぞれに適用する ループ、 items('Apply_to_each') の代わりに triggerBody()ステップ3以降はすべてそのままです。

Excelで請求書作成を自動化する方法は?​

請求書作成を自動化するということは、請求書作成時に人が行うすべての手順(金額の入力、PDFへのエクスポート、ファイル名の指定、ファイリングなど)を省くことを意味します。テンプレート自体は通常のExcelファイルのままです。

このフローでは4つすべてを削除します。リスト行が唯一の入力です。テンプレートは以下によって入力されます。 Excel - 入力輸出者 PDFに変換によってアーカイブ化されました PDF - PDFAを作成する提出者: ファイルを作成するステップ7で説明したように、行からファイル名が作成されたら、手作業で行うことは何もありません。

Power AutomateはExcelファイルをPDFに変換できますか?​

はい。クラウドフローでは、OneDrive for Businessコネクタの ファイルを変換する このアクションは.xlsxファイルをPDFに変換しますが、OneDriveに保存されているファイルのみに適用されます。そのため、SharePointフローでは、まずワークブックをOneDriveにコピーしてから、後で削除することがよくあります。

PDF4meでPDFに変換 このフローでは、ファイルの内容は前の操作から直接取得されます。そのため、このフローで入力されたワークブックはどこにも保存されません。Excel - 入力から直接コンバーターに渡され、SharePointに保存されるファイルは完成したPDF/A形式の請求書のみです。


トラブルシューティング​

請求書の欄が空白になる

Compose 式内の列名を確認してください。内部名である必要があります。 日時 それよりも 日時. 疑問符 triggerBody()?['日時'] 間違った名前はエラーではなく null に変換されるため、実行は緑色のままで、セルは空のままです。名前が正しい場合は、JSON パスをマーカー (RootData、Customer、Name) と照合し、両方とも同じスペルになっていることを確認します。

請求書は2ページ構成で、2ページ目に1列の欄があります。

テンプレートの幅が印刷ページ1枚分よりも広いため、PDFへの変換時にワークブックのページ設定が反映されてしまいます。そのため、そちらで修正してください。 ページレイアウト、 拡大縮小してフィットさせる、 幅 1ページテンプレートをSharePointに保存すると、次回の実行時に1ページ分の幅で表示されます。

ArchivedExcelには請求書ファイルが1つだけ保存されます。

ファイルの作成 ファイル名 固定テキストです ExcelArchived.pdfそのため、すべての実行で同じ名前が対象となります。手順7で説明されているように、リストアイテムIDを使用して行ごとに一意になるようにしてください。

PDFファイルは正常に開きますが、PDF/A形式ではありません。

ファイルの作成は、 PDF - 圧縮 または PDFに変換 の代わりに PDF - PDFAを作成する3 つのトークンすべてに Body というラベルが付いているため、間違いは起こりやすく、実行履歴には何も問題がないように見えます。式が正しいことを確認してください。 body('PDF_-_Create_PdfA')。


次のステップ​

同じ8つのステップ(行のリスト、JSONへの変換、テンプレートの取得、データ入力、変換、圧縮、認証、保存)のパターンで、見積書、納品書、明細書、証明書など、スプレッドシートとして作成されるあらゆる文書を処理できます。