AppSheet Automationの使い方(2)「Create a new file」でファイル作成

folder_openAppSheet

請求書アプリのユースケースで、AppSheet AutomationのTask(タスク)設定をマスターします。
前回(第1回)は、Automationに用意されている6つのTaskの使い方と活用事例について紹介しました。
今回から、実際にTaskの設定をやってみましょう。
前回の解説で、Bot(ボット)→Event(イベント)→Process(プロセス)の設定まで済んでいるので、追加済のStepに「Create a new file」というTaskを設定してみます。

この記事で使用する請求書アプリは、ブログで解説している請求書アプリ(7回シリーズ)です。
ブログを読んでアプリを自作していない場合は、メルマガ購読者特典のサンプルアプリをダウンロードしても大丈夫です。

【お知らせ】
2022年10月以降、AppSheetエディタの画面が新しく変更されています。
AppSheetのアップデートが速すぎて(汗)、このブログ記事はまだ新エディタの画面には対応していません。
エディタ画面右上にある「Switch to the legacy editor」というアイコンをクリックすると、新エディタと旧エディタの切り替えができます。
記事のアップデートができるまでは、とりあえず、旧エディタに切り替えて解説を読んでください。

Switch to the legacy editor」で旧エディタに切り替える。

1. AppSheetではExcelのファイル出力もできる

「Create a new file」というTaskを使うと、AppSheetのデータを使ってファイル出力ができるようになります。
このブログでは、請求書アプリと在庫管理アプリで「Create a new file」を使ってPDFを出力してきました。

今回は、請求書アプリでExcelの請求書を出力してみます。

「Create a new file」では、ひな形(テンプレート)を使ってファイルを作成します。
PDFの請求書では、Googleドキュメント(Docs)を使ってひな形を作成しました。

今回は、ひな形としてExcelのファイルを使用します。
Googleドキュメントと比較すると、Excelは調整が必要になるため多少面倒です。
ですが、上記記事と同様にサンプルファイルを用意していますので、応用編としてやってみましょう。

2. Create a new fileを設定する

「Create a new file」の設定を始めましょう。
前回(第1回)からの続きです。

「Tasks」タブに移動してみましょう。
「Show Unlinked」になっている場合はクリックしてみます。

AppSheetエディタで「Tasks」タブに移動する。

前回(第1回)で追加したTask(請求書Automationステップ Task - 1)があるでしょうか。
クリックして設定パネルを開きましょう。

Botで追加したTaskを開く。

タスク設定パネルが開くので、以下のようにTaskを設定します。

設定項目
Task category 「Create a new file」を選択します。
Task name タスクの名前です。ここでは「請求書発行」にしました。
Table name タスクを実行するテーブルです。ここでは「請求書」を選択します。
HTTP Content Type ファイルのコンテンツタイプを選びます。ここでは「XLSX」を選びます。
ファイルタイプには、CSV、HTML、ICS_Calendar、JSON、PDF、XLSX、XMLがあります。
Template ファイルのひな形(テンプレート)を選択します。
File Store 「Default」のままでよいです。

Taskを設定する。

「Template」は、ファイルのひな形を選択します。
今回はExcelで請求書を作成するので、 サンプルとしてExcelのデータを用意しました。
下のExcelアイコンをクリックして、データをダウンロードしてください。

GoogleドライブにExcelのファイルをアップロードする

Googleアカウントにログインして、GoogleドライブにExcelのファイルをアップロードしましょう。

「Template」の書類アイコンをクリックしてひな形を読み込む。

では、ひな形を読み込みましょう。「Template」の書類アイコンをクリックします。

Upload fromで「Google Drive Files」を選択する。

Upload fromで「Google Drive Files」を選択します。

Googleドライブに保存したExcelファイルを選択する。

さきほどGoogleドライブに保存したExcelファイルを選択して、「Select」をクリックします。

ひな形のExcelファイルが読み込まれた。

ひな形のExcelファイルが読み込まれると、「DocID=1xxxxxxxx」のようにドキュメントIDが表示されます。

Taskのファイルの保存場所やファイル名について設定する。

設定を続けましょう。
ファイルの保存場所やファイル名について設定します。

設定項目
File Folder Path ファイルを保存する場所(Googleドライブ)を指定します(空欄でも可)。
空欄の場合は、アプリフォルダ内に「Files」というフォルダが自動的に作成されて、その中にファイルが保存されます。
File Name Prefix ファイル名を設定します。三角フラスコアイコンをクリックして、式で動的に設定することができます。
Disable Timestamp? チェックしてONにすると、ファイル名にタイムスタンプを追加しません。デフォルトではOFFになっているので、ファイル名にタイムスタンプが追加されます。
ここでは、チェックしてONにしておきます。

「File Folder Path」(ファイル保存場所)は、ここでは空欄にしておきます。
アプリフォルダ内に「Files」というフォルダが自動的に作成されて、その中にファイルが保存されます。

「File Name Prefix」(ファイル名)は式で設定しましょう。
三角フラスコアイコンをクリックして、Expression Assistantに以下のように入力してください。

Expression Assistantに式を入力する。

以下の式をコピペして使っても大丈夫です。

[請求書番号] & "-" & [トリガ]

「Disable Timestamp?」は、タイムスタンプを追加したくないので、チェックしてONにしておきます。

「Disable Timestamp?」はチェックしてONにする。

最後に、「HTTP Content Type」がPDFの場合はファイルサイズに関する設定があります。
今回は、XLSX(Excel)なので設定がありません。以上で「Create a new file」の設定は完了です。

設定項目
Attachment Page Orientation Portrait(タテ)かLandscape(ヨコ)か選択します。
Attachment Page Size ページサイズを選択します。
Use Custom Margins デフォルトのままで問題ありません。

3. Excelファイルの出力は調整が必要

さっそく、Botを実行して請求書をExcelで作成してみましょう。
AppSheetエディタのプレビューで「請求書」を選択し、作成済みの請求書をひとつ選択します。

AppSheetエディタのプレビューで「請求書」を選択する。

Botを実行するためのActionは、請求書アプリ(第7回)で既に作成済みです。
「請求書発行」ボタンをクリックするとBotが実行されるので、クリックしてみましょう。

Actionを実行して請求書を発行する。

請求書がExcelで発行されたかを確認してみましょう。
Googleドライブに「AppSheet」というフォルダがあります。
その中に「data」というフォルダがあるので開いてみましょう。

Googleドライブに「AppSheet」というフォルダがある。

アプリフォルダを開いてみましょう。
請求書アプリでは、「請求書-○○○○○○○」(○○○○○○○はowner's IDを含む文字列)という名前が付いています。

アプリフォルダを開く。

「Files」というフォルダの中に請求書Excelが保存されているでしょうか?

「Files」フォルダの中に請求書Excelが保存されている。

では、請求書のExcelファイルを開いてみましょう。
表示がおかしくなっていませんか?

請求書のExcelファイルを確認する。

実は、Excelをひな形にしてファイルを作成する場合、ちょっと工夫が必要になります。
その調整法について解説する前に、ひな形の作成についておさらいしておきましょう。

4. AppSheetではタグを使って差し込みできる

Googleドライブに保存したExcelのひな形ファイルを開いてみましょう。

Googleドライブに保存したExcelのひな形ファイルを開く。

タグの使い方

AppSheetでは、ひな形に列の値を差し込む時に「タグ」を使用します。
タグは以下のように、<<>>内に[列名]を記載します。

タグ

<<[ 列名 ]>>

例えば、請求書の請求日と請求書番号は以下のように書きます。

  • <<[請求日]>>
  • <<[請求書番号]>>

ひな形では以下のような感じになっています。

AppSheetでは、ひな形に列の値を差し込む時に「タグ」を使用する。

参照テーブルの値はリレーションを利用する

取引先情報は「請求書」テーブルから「取引先」テーブルを参照して、必要な列の値を取得します。
請求書アプリ(第2回)で「請求書」テーブルと「取引先」テーブルにリレーションシップを設定しているので、それを利用します。

参照テーブルから値を取得するタグの書き方は以下のようになります。

参照テーブルの値を取得するタグの書き方

<< [ Ref を設定した列名].[参照テーブル内の列名 ] >>

「取引先」テーブル内にある「取引先名」「部署」「担当者」を取得する場合は以下のように書きます。

  • [取引先].[取引先名]
  • [取引先].[部署]
  • [取引先].[担当者]

ひな形では以下のようになっています。

参照テーブルの値はリレーションを利用する。

StartタグとEndタグの使い方

請求書の明細は「請求書」テーブルにある「Related 明細s」列から明細リストを取得します。
取得した明細行を表組にするために、StartタグとEndタグを使用します。

Startタグ、Endタグ

<< Start: [ Related テーブル名s ]>>
<<[列名]>><<[列名]>><<[列名]>>...
<<End>>

ひな形では以下のようになっています。

StartタグとEndタグを使って、明細リストを取得する。

5. Excelのひな形を調整する

再度、Excelの請求書を見てみましょう。
以下の三点の表示に不具合があることがわかります。

  1. 取引先情報の「御中」「様」、「請求金額」「(税込)」などの文字列が表示されない
  2. 単価、金額、消費税、合計欄が通貨表示されない
  3. 日付が「44868」「44895」などの数字になっている

この不具合を解消するために、Excelのひな形では以下のように設定しておきましょう。

  1. セル内にタグと文字列を混在させない
  2. 通貨と日付は表示形式を設定する

セル内にタグと文字列を混在させない

取引先名を表示するセルを選択してみましょう。
セル内に、取引先を取得表示するタグと「御中」という文字列が書かれています。

セル内にタグと文字列を混在させないようにする。

同じように、タグと文字列が混在しているセルがいくつかあります。

  • 取引先部署、取引先担当者
  • 請求日、請求書番号
  • 支払期日、備考

AppSheetでは、セル内にタグと文字列が混在している場合はタグを優先して表示し、文字列は消えてしまいます。

AppSheetでは、セル内にタグと文字列が混在している場合はタグを優先する。

Excelのひな形を修正してみましょう。
直接ひな形ファイルを修正してもよいですし、修正版のExcelのデータを用意したのでダウンロードして使ってもよいです。下のExcelアイコンをクリックしてください。

修正版のExcelのデータを用意したのでダウンロードする。

ひな形ファイルを修正する場合は、Templateの「View」をクリックします。

Templateの「View」をクリックする。

ひな形ファイルが開いたら「アプリで開く」をクリックして、「Googleスプレッドシート」を選択します。

「アプリで開く」の「Googleスプレッドシート」を選択する。

GoogleスプレッドシートでExcelファイルが開くので、編集できるようになります。

ひな形ファイルのExcelを編集できるようになる。

はじめに、タグと文字列は混在しないようにセルを分けましょう。

取引先名はA3にタグ、C3に文字列「御中」に分けてみました。
同様に、担当者はA5にタグ、B5に文字列「様」に分けてみましょう。

タグと文字列は混在しないようにセルを分ける。

請求金額、支払期日、備考も、以下のようにタグと文字列のセルを分けます。

請求金額も、以下のようにタグと文字列のセルを分ける。

請求日、請求書番号も以下のようにセルを分けます。

請求日、請求書番号も以下のようにセルを分ける。

通貨と日付は表示形式を設定する

通貨と日付は、Googleスプレッドシートの書式設定オプションで表示形式を設定します。

はじめに通貨の表示形式を設定します。
請求金額の<<[合計]>>セル(以下の例では、B9)を選択した状態で、表示形式(123)をクリックし「カスタム通貨」を選択します。

表示形式(123)をクリックし「カスタム通貨」を選択する。

「日本円」を選択して「適用」をクリックします。

「日本円」を選択して「適用」をクリックする。

同じ要領で、単価、金額、小計、消費税、合計のセルも表示形式を「日本円」にしましょう。

続けて日付の表示形式を設定します。
支払期日の<<[支払期日]>>セル(以下の例では、B11)を選択した状態で、表示形式(123)をクリックし「日付」を選択します。

表示形式(123)をクリックし「日付」を選択する。

同じ要領で、請求日の表示形式を「日付」に設定しましょう。

以上で、Excelひな形ファイルの調整は完了です。
Botを実行して、請求書ファイルを作成してみましょう。

今度は正しく表示されたでしょうか。
AppSheetのサーバーにキャッシュが残っている場合があるので、すぐに修正が反映されない場合があります。
何度か「Save」したり、リロードするとキャッシュがクリアされるので、試してみてください。

以下のようになっていれば成功です。

Botを実行して、請求書ファイルを作成する。

6. Excelファイルのメリットとデメリット

Task「Create a new file」で請求書をExcelで作成できるようになりました。
Excelファイルの作成には以下のような特徴があります。
Excelは、PDFと比較して必ずしも優位性があるとは限らず、一長一短という感じです。

Excelのメリット

実は、AppSheetでPDFファイルを作成すると、日本語フォントが中国語っぽい感じで表示されるという問題があります。
例えば、消費税の「消」の文字は以下のように表示されます。

AppSheetでPDFファイルを作成すると、日本語フォントが中国語っぽい感じで表示される。

原因はおそらくAppSheetのバックエンドサーバーが海外にあるため、ロケール設定が日本語に対応していないからと推察されます。
なので、AppSheetエディタ側の設定では、フォント問題を克服することはできません。
フォントがどうしても気になる場合は、Excelによるファイル作成を検討してみてください。

出力後は、普通のExcelファイルとして操作することができます。
ページ番号設定をしたり、PDFで出力することもできます。

Excelのデメリット

PDFと比較すると、Excelのひな形は調整が必要で設定に手間がかかりました。
他にも、

  • ひな形に画像ファイルを配置しても出力できない。
  • レイアウトが自由にできない

というデメリットがあります。

例えば、請求書に会社のロゴや社印の画像を入れたい場合があると思います。
ひな形ファイルに画像を配置しても、AppSheetでは無視されるようで画像が出力されません。
Googleドキュメントのひな形なら画像の出力ができるので、この点はExcelのデメリットです。

請求書レイアウトについては、明細行を最下部にする必要があります。
仮に、明細行の下に小計、消費税、合計欄を置いたとしましょう。

小計、消費税、合計欄を明細行の下に配置してみる。

明細行の数が増えると、上書きされて消えてしまいます。
Excel出力では行を挿入して増やしてくれるわけではないので、このようになります。

小計欄が明細行に上書きされて消える。

以上よりPDFとExcelを比較すると、設定が簡単なPDFの方に若干分があるような気がします。
Excelで請求書については、

  • どうしてもフォントが気になる
  • ロゴや社印などの画像は不要である
  • レイアウトにこだわりがない

場合に検討してもよいでしょう。

次回(第3回)は、「Send an email」でBotからメール送信するTaskを設定してみます。
「Send an email」では添付ファイル作成も同時にできるので、請求書作成 → メール送信ならこのTask一発でワークフローを自動化できます。
是非、挑戦してみてください!

Share Me!

前の投稿
AppSheet Automationの使い方(3)「Send an email」でメール送信
次の投稿
AppSheet Automationの使い方(1) 6つのTaskでできること

関連記事

メニュー