■はじめにこんにちは!株式会社ウイングの樋熊です。第3回目はエクセルのピボットテーブルとColdFusionのSpreadSheetReadを組み合わせた例を紹介しました。最終回の上級編ではエクセルの帳票フォーマットを資産活用し、ColdFusionのスプレッドシート機能を利用しPDF化した例を紹介します。エクセルで運用している帳票があれば、ColdFusionのスプレッドシート機能を使うことで簡単にPDF帳票が作成できます。■サンプル紹介では早速ColdFusionのスプレッドシート機能を利用した「御見積書」のPDF帳票の作成を紹介します。今回はプログラムのソースの公開は割愛させていただきます。PDF生成までの処理の流れは以下のとおりです。CFQUERYタグで帳票出力用のデータ取得を行う。関数SpreadSheetReadで出力用エクセルファイルの読み取りを行う。クエリ取得データのエクセルファイル書き込み。関数SpreadsheetWriteで�Bで作成したエクセルファイルをサーバに書き出す。エクセルファイルのPDF変換。CFHEADERタグ、CFCONTENTタグを使い、サーバに保存したPDFファイルをダウンロードさせる(ダウンロード後、サーバからPDFファイルを削除)。それでは、今回重要な役割を果たす「PDF出力用エクセルファイル」の設定を説明します。当シートをPDF化します。企業名などの値が入るセルは設定シート(hidden)から参照させます。【ポイント】ColdFusionのSpreadsheetで直接mainシートに企業名など値を入れることも可能ですが、レイアウトが崩れてしまう可能性があるのと、値の出力位置調整などプログラムの影響を抑えるため、Spreadsheetでは設定シート(hiddenシート)へのみ値出力させます。今回のサンプルでは背景色が黄色の箇所に設定シート(hidden)から参照の設定を行いました。御見積書:設定シート(hidden)見積データを出力するためのシートです。下記はSpreadsheetで値を出力するまえの状態です。■�Bクエリ取得データのエクセルファイル書き込み企業名など取得したデータはColdFusionのSpreadsheetで設定シート(hiddenシート)へ書き込みをします。以下が値を出力した後の設定シート(hiddenシート)のイメージです。設定シート(hiddenシート)に出力したい値が入ると、自動でメインシートに値が表示されます。企業名の表示位置やレイアウトを変えたい場合は、エクセル上でレイアウト修正と設定シートの参照先設定を変えるだけで対応できます。ColdFusionのプログラムを修正せずレイアウト変更ができるのでメンテナンスがとても楽ですね。■�DエクセルファイルのPDF変換Spreadsheetで作成したエクセルファイルをPDF形式へ変換を行います。ここでは具体的な方法は割愛しますが、ColdFusionの標準機能でPDF変換ができないので、PDF変換のJavaライブラリをColdFusionから呼ぶなど他の技術を使いPDF化します。JavaであればColdFusionと連携し易く、CFOBJECTタグでJavaオブジェクトを呼び出し使用することができます。以上の処理を組み込むと、システム上からPDF帳票を出力する機能が簡単に作成できます。今回は見積書の例を紹介しましたが、申込書や請求書なども様々な帳票に応用することができます。■ダウンロードエクセルテンプレートは以下からダウンロードして下さい。全4回にわたり、ColdFusionとエクセルの連携を紹介しました。Excelの出力・取り込みやエクセルの便利な集計機能を組み合わせたエクセル出力、ExcelのPDF化等複雑な処理もColdFusionならシンプルなプログラムで実装可能です。エクセル生成、帳票生成をColdFusionなどプログラム側で全てやろうとすると非常に大変です。今まで紹介した記事ではColdFusionで最低限のプログラムを行い、レイアウトや集計、装飾はエクセル側で行うよう役割を分けることで作成コストやメンテナンスコストを下げることができます。運用で使っているエクセルファイルがあれば、既存のエクセルをそのまま有効活用することが可能です。アイディア次第では、エクセル機能も十分に活かしながら、便利な機能を作ることが出来ます。ColdFusionとエクセル機能の組み合わせを試してみて下さい。資料・FAQ事例紹介ColdFusionユーザーグループ。