Workato：Googleスプレッドシートと連携してWorkatoで帳票を作成しPDF出力する

# はじめに

ビジネスにおいて欠かせない要素の一つに「帳票」があります。近年では、プリンターで紙に出力する機会は減少しましたが、PDFをメールで送受信する形での帳票運用は、今後もなくなることはないでしょう。

さらに、内製化の進展に伴い、帳票作成や運用ツールの利用が広がっていることを考えると、帳票の需要と重要性はますます高まると予想されます。しかしながら、専用のツールを導入するほどの規模ではない場面では、手元にあるツールで対応したいと考えることも多いでしょう。

そこで今回は、WorkatoとGoogleスプレッドシートを活用し、Workatoを帳票作成・運用ツールとして利用する手順を解説します。

# 手順

## Googleスプレッドシートで帳票テンプレートを作成する

Googleスプレッドシートで帳票のテンプレートを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/5c2b9eaf-64b4-5c5e-5583-144dbe56f944.png)

なお、WorkatoのGoogle Sheetsコネクタには、セルへの値の追加において次の制限（以下に示す制限）があります。

- セルを決め打ちとした値の追加が行えない
- 行ヘッダの位置およびサンプル行の位置が１～２行目固定である

このため、明細は「明細」シート、単一の値は「基本情報」シートで値の管理を行い、各シートセルをテンプレートシートへマッピングすることとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/9af944af-6b17-74c7-c0e2-d0d42a429204.png)

## Workatoのレシピを作成する

Workatoでは次のようなレシピを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/27fb1273-056a-3bd7-ad75-588d33df8bb4.png)

2ステップ目は、スプレッドシートの明細行へ連携するデータを作成しています。このサンプルではCSV tools by WorkatoのParse CSVアクションに対して決め打ちで値をセットしていますが、実際の運用においては、任意のアプリ等から値が受け渡されることを想定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/7e79503e-57cb-972a-91ac-9b2fc8a519db.png)

3ステップ目では、請求書テンプレートをコピーし、請求書編集用スプレッドシートを作成します。後続の処理では、コピーされたスプレッドシートに対して値の追加を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/5b68609c-88f0-8fac-5318-25fc741237f8.png)

4ステップ目では、編集用スプレッドシートに対して単一の値のセットを行っています。セットされると、「基本情報」シートの３行目の各列に対して値が追加されます。また、事前マッピングされたテンプレート上の各セルに対して値が反映されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/287d5316-4f4a-d4f0-9644-687c375dafcd.png)

5ステップ目では、編集用スプレッドシートの「明細」シートに対して値を追加します。複数行存在する場合は、複数行の値が「明細」シートにセットされます。こちらも同様に、事前マッピングされたテンプレート上の明細へ値が反映されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/19251d29-f3e1-d535-c352-1302532185f3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/713774fa-757a-c93c-1013-4601e38c44e3.png)

6ステップ目では、作成したスプレッドシートをPDFファイルとしてエクスポートします。パラメータとして次のものを指定します。

- format・・・pdf　（pdfとして出力）
- portrait　・・・　true　（縦向きのドキュメントとして出力）
- size ・・・　A4　（A4サイズのドキュメントとして出力）
- fitw　・・・　true　（横幅を合わせる）
- gridlines　・・・　false（グリッドを出力しない）
- sheetnames　・・・　false　（シート名を出力しない）
- gid　・・・　0　（最初のシートを出力する）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/ee725200-ade0-d3a1-27f7-975742660a5f.png)

7ステップ目では、エクスポートされたPDFファイルをストレージへ保存します。ここではWorkatoファイルストレージを使用していますが、Amazon S3やGoogle Drive, Boxなども利用可能です。用途等に応じたストレージを選択してお使いください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/b6a3a755-980e-9f16-1bcb-7de83a4a10fa.png)

# 出力結果

このレシピを実行すると、次のような帳票（請求書）が出力されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/727bf7f4-5b0c-c2eb-c6cd-b8600862b60b.png)

# 活用例

## Salesforceやkintone, SmartDBなどのPDF生成バックエンドとして

Salesforceやkintone, SmartDBなど、Workatoとの連携に対応したアプリケーションと連携することで、それらのアプリケーションに帳票出力機能を持たせることが可能になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/3a88334d-6762-09db-e6f5-c5a981159e3d.png)

## 自社アプリケーションのPDF生成バックエンドとして

WorkatoにはWorkato自身をAPIサーバとして運用可能なAPI Platformがあります。API Platformを利用して帳票作成APIを用意し、それを自社システムと連携することで、自社システムに帳票出力機能を持たせることも可能になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64876/ae021497-92bb-d051-266a-3be50e2e67d9.png)

# まとめ

WorkatoとGoogleスプレッドシートを利用することで、動的に帳票を作成し、作成した結果をPDF出力することができます。この手順により、Workatoを帳票作成・運用ツールとして活用することが可能となります。

より高度な帳票を必要とする場合は専用のツールを利用した方が良いと思いますが、単純な帳票であればWorkatoとGoogleスプレッドシートで十分作成が可能です。もしご興味いただけましたら、是非お試しください。