やること「Excelを出力する」「PDFを出力する」(画面のカスタマイズ)や、やること「Excelを出力する」「PDFを出力する」(Job Runner)のテンプレートファイルにおいて、文字列(複数行)フィールドで改行があったとき、出力しているセルの1つ下のセルに続けて文字を出す方法があります。
kintoneのフィールド設定
「概要」フィールドを次のように用意しました。
Excelテンプレートの設定
Excelテンプレートでは次のように設定します。
文字列(複数行)フィールドの改行ごとにセル(行)を増やして表示したいので、$FOREACH〜$ENDを使います。$FOREACHのカッコの中には、文字列(複数行)のフィールドコードを指定します。間の行には「$」だけ配置しましょう。
枠線(罫線)の設定を少し工夫すると、綺麗に出力ができます。
$FOREACHと$ENDの行はあとから削除されてしまいますので、$FOREACHの上の行(下図)と$ENDの下の行に罫線を設定しておくのがポイントとなります。
出力例1
出力例2
1行の中の文字数が多い場合は、セルに入り切らない場合があります。
その場合は、セルの書式設定で文字縮小の指定をしてください。
縮小した結果、文字が小さくなりすぎてしまって困る場合は、後述する1セルに出力する方法をお試しください。
タイトルを行頭に付けたい場合
$FOREACHと$ENDが書かれた行は、展開後に削除されてしまいますので、左側にタイトルを付けたい場合は少し工夫が必要です。
タイトルは必ず出てほしいので、1行目を「$(概要)(0)」とします。
2行目以降は「$FOREACH(概要)(1..)」として、その後は同じように「$」と「$END」で続けます。
なお「$(概要)(0)」は、「概要」フィールドの1行目を出力するという意味、
「$FOREACH(概要)(1..)」は、「概要」フィールドの2行目からFOREACHの展開を開始するという意味になります。
注意点として、横方向のセルの結合はしても構いませんが、$FOREACH〜$ENDの行にまたがる縦方向のセルの結合は生成エラーとなります。枠内を白く見せたい場合は、下図のように白い罫線を引いてください。
出力例3
複数行を1セルに出力する
文字列(複数行)フィールドを1セルに出力する場合は、テンプレートをこのように設定します。
この際、セルの書式設定で「折り返し」の設定をしておくと、文字列(複数行)内の改行も反映されます。
出力例4
ただこの場合、予想される行数の分だけ、テンプレートのセルの高さを設定しておく必要があります。
セルの高さが低く、フィールド内にセットされている文字数が多い場合、次のようにセル内に入りきれないことがあります。
これを回避するためには、テンプレートのセルの高さを自動設定としておくと、内容に合わせて高さを調整することができますが、そのためには、「セルの結合」を外しておく必要があります。
※注意※ 行の高さの自動指定は、「PDFを出力する」では効果がありません。
出力例5
まとめ
PDF/Excel出力のテンプレートに関する情報はこちらのリファレンスマニュアルに記載しています。
PDF/Excel出力では、$FOREACH〜$ENDの使い方や、セルの書式設定の仕方次第でいろいろな出力が実現できます。ぜひお試しください!