Docurain Labo

Docurainサービス開発日記

Docurainを使って帳票作りにチャレンジ(その1:帳票仕様とヘッダー作成)

DocurainはWeb APIを使って簡単に納品書や請求書をはじめとする、帳票を生成するサービスになります。今回はこのDocurainの使い方について、帳票を一から作成してみます。

ベースになる帳票について

今回はExcelの新規作成時のテンプレートとして選べる青の領収書をベースにしていきます。ファイル名は recept.xlsx とします。

f:id:moongift:20210719152640p:plain

この領収書には社名や注文情報などを記述されていますので、この部分についてDocurainを使ってカスタマイズしていきます。

基本作業

一番左の列を空ける

Docurainで帳票を作成する場合、まずA列を必ず空けておきます。この列はDocurainのロジック記述専用の列になります。

f:id:moongift:20210719152717p:plain

これはお好みかも知れませんが、1行目も空けておくことをお勧めします。そして A1 セルに #set($e=$ROOT) と記述しておくと、帳票内で ${e.company.name} のように記述できるようになります。通常の場合は ${ROOT.company.name} といった記述になりますので、多少文字を少なくできます。

印刷設定を行う

帳票の印刷部分を選択し、ページレイアウトメニューの印刷範囲にて、印刷範囲を設定してください。そうすることでA列や1行目を印刷範囲から除外できます。また、帳票の印刷範囲が正しく認識されるように、横を1ページ設定にしておくのがお勧めです。

f:id:moongift:20210719152808p:plain

印刷範囲が正しく設定されているかは、表示メニューの「改ページプレビュー」を有効にすると確認できます。

繰り返し部分の削除

注文情報など、繰り返し処理になる部分は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で置き換わる文字(プログラミングでは変数と呼びます)として指定していきます。たとえば今回は次のように指定しました。

f:id:moongift:20210719152917p:plain

データの作成

続いてデータの作成です。本来であれば、このデータはシステムから出力されるものになるでしょう。今回は試しということで、手作業で次のようなデータを作成しました。この内容を 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より作成が可能です。まず新規追加ボタンをクリックします。

f:id:moongift:20210719121240j:plain

形式として繰り返し使える通常トークンと、一度だけ使えるワンタイムトークンがあります。必要に応じて選択してください。また、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というファイルがダウンロードされます。内容がきちんと置き換わっていれば完成です。

f:id:moongift:20210719153110j:plain

まとめ

今回は新しい帳票ファイルを使って、Docurainのテンプレートにしていく過程を紹介しました。次回は注文などの繰り返し処理部分の作成を紹介します。