DocurainはWeb APIを使って簡単に納品書や請求書をはじめとする、帳票を生成するサービスになります。今回はこのDocurainの使い方について、帳票を一から作成してみます。
ベースになる帳票について
今回はExcelの新規作成時のテンプレートとして選べる青の領収書をベースにしていきます。ファイル名は recept.xlsx とします。
この領収書には社名や注文情報などを記述されていますので、この部分についてDocurainを使ってカスタマイズしていきます。
基本作業
一番左の列を空ける
Docurainで帳票を作成する場合、まずA列を必ず空けておきます。この列はDocurainのロジック記述専用の列になります。
これはお好みかも知れませんが、1行目も空けておくことをお勧めします。そして A1
セルに #set($e=$ROOT)
と記述しておくと、帳票内で ${e.company.name}
のように記述できるようになります。通常の場合は ${ROOT.company.name}
といった記述になりますので、多少文字を少なくできます。
印刷設定を行う
帳票の印刷部分を選択し、ページレイアウトメニューの印刷範囲にて、印刷範囲を設定してください。そうすることでA列や1行目を印刷範囲から除外できます。また、帳票の印刷範囲が正しく認識されるように、横を1ページ設定にしておくのがお勧めです。
印刷範囲が正しく設定されているかは、表示メニューの「改ページプレビュー」を有効にすると確認できます。
繰り返し部分の削除
注文情報など、繰り返し処理になる部分は3行だけにしておきます。これは1行目が繰り返し処理の指定、2行目が繰り返し処理の内容、そして3行目に繰り返し処理の終わりを指定するためです。4行目以降については不要なので、削除します。
ヘッダーを変更してみる
では実際に帳票のヘッダーをカスタマイズしてみましょう。今回は入力データをJSON形式と想定しています。たとえば次のようなJSONだったとします。
{ "company": { "name": "ルート42株式会社", "message": "クラウド帳票開発のドキュレイン" } }
この時、Excelでは ${ROOT.company.name}
と入力した部分が ルート42株式会社
という文字列に置き換わります。 A1
セルに #set($e=$ROOT)
と記述しておくと ${ROOT〜}
が ${e〜}
として扱えるようになりますので、 ${e.company.name}
と書けるようになります。
このようにして、必要な部分をすべてDocurainで置き換わる文字(プログラミングでは変数と呼びます)として指定していきます。たとえば今回は次のように指定しました。
データの作成
続いてデータの作成です。本来であれば、このデータはシステムから出力されるものになるでしょう。今回は試しということで、手作業で次のようなデータを作成しました。この内容を data.json として receipt.xlsxファイルと同じフォルダの中に保存します。
{ "company": { "name": "ルート42株式会社", "message": "クラウド帳票開発のドキュレイン" }, "customer": { "name": "ドキュメント 太郎", "company": "帳票株式会社", "address1": "〒110-0012 東京都台東区", "address2": "竜泉1-10-6 秋田屋ビル2F", "tel": "03-000-0000" }, "billing": { "no": "100010", "date": "2021-07-19" } }
トークンを作成する
Docurainを実行する際には事前にトークンを発行する必要があります。トークンはトークン | Docurainより作成が可能です。まず新規追加ボタンをクリックします。
形式として繰り返し使える通常トークンと、一度だけ使えるワンタイムトークンがあります。必要に応じて選択してください。また、APIを利用許可するIPアドレスを指定します。制限しない場合には *.*.*.*
を指定してください。IPアドレスのフォーマットはこちらのドキュメントを参考にしてください。
この記事の中ではトークンは YOUR_TOKEN
として記述していきますので、ご自分のものと置き換えつつ読み進めてください。
実行する
今回はコマンドラインで実行します。OSによってコマンドが多少変わるので注意してください。
Windowsの場合
Windowsではコマンドプロンプトを利用してください。テンプレートのXLSXファイル、上記JSONデータファイルがあるフォルダ内でコマンドを実行します。
curl -X POST https://api.docurain.jp/api/instant/pdf ^ -H "Authorization:token YOUR_TOKEN" ^ -H "Content-Type:multipart/form-data" ^ -F "template=@./receipt.xlsx;type=application/vnd.ms-excel" ^ -F "entity=@./data.json;type=application/json" ^ -o receipt.pdf
macOS/Linuxの場合
macOSやLixuxはターミナルを利用してください。Windowsと同じく、テンプレートのXLSXファイル、上記JSONデータファイルがあるフォルダ内でコマンドを実行します。
curl -X POST https://api.docurain.jp/api/instant/pdf \ -H "Authorization:token YOUR_TOKEN" \ -H "Content-Type:multipart/form-data" \ -F "template=@./receipt.xlsx;type=application/vnd.ms-excel" \ -F "entity=@./data.json;type=application/json" \ -o receipt.pdf
これでreceipt.pdfというファイルがダウンロードされます。内容がきちんと置き換わっていれば完成です。
まとめ
今回は新しい帳票ファイルを使って、Docurainのテンプレートにしていく過程を紹介しました。次回は注文などの繰り返し処理部分の作成を紹介します。