ColdFusion で ODBC 経由のExcel のデータをリアルタイムにインポートしてアプリケーションを構築
Adobe ColdFusion は、Web およびモバイルアプリケーションの開発プラットフォームです。独自のスクリプト言語である ColdFusion Markup Language(CFML)を使用して、データ駆動型の Web サイトを作成したり、REST などのリモートサービスを生成したりできます。ColdFusion を CData ODBC Driver for Excel と組み合わせることで、ColdFusion の Web およびモバイルアプリケーションとExcel のライブデータを連携できます。これにより、アプリケーションをより堅牢で完全なものにすることができます。この記事では、ODBC ドライバーを使って、ColdFusion マークアップファイル内でExcel のデータを取得してテーブルを作成する方法を説明します。
このチュートリアルを進めるには、CData ODBC Driver for Excel と Adobe ColdFusion をインストールする必要があります。
接続の設定
まだ設定していない場合は、ODBC DSN(データソース名)で接続プロパティを指定します。これはドライバーインストールの最終ステップです。Microsoft ODBC データソースアドミニストレーターを使って ODBC DSN を作成・設定できます。
Authentication セクションのExcelFile には有効なExcel ファイルを設定する必要があります。
Amazon S3 内のExcel への接続
URI をバケット内のExcel ファイルに設定します。さらに、次のプロパティを設定して認証します。
- AWSAccessKey:AWS アクセスキー(username)に設定。
- AWSSecretKey:AWS シークレットキーに設定。
Box 内のExcel への接続
URI をExcel ファイルへのパスに設定します。Box へ認証するには、OAuth 認証標準を使います。 認証方法については、Box への接続 を参照してください。
Dropbox 内のExcel への接続
URI をExcel ファイルへのパスに設定します。Dropbox へ認証するには、OAuth 認証標準を使います。 認証方法については、Dropbox への接続 を参照してください。ユーザーアカウントまたはサービスアカウントで認証できます。ユーザーアカウントフローでは、以下の接続文字列で示すように、ユーザー資格情報の接続プロパティを設定する必要はありません。
SharePoint Online SOAP 内のExcel への接続
URI をExcel ファイルを含むドキュメントライブラリに設定します。認証するには、User、Password、およびStorageBaseURL を設定します。
SharePoint Online REST 内のExcel への接続
URI をExcel ファイルを含むドキュメントライブラリに設定します。StorageBaseURL は任意です。指定しない場合、ドライバーはルートドライブで動作します。 認証するには、OAuth 認証標準を使用します。
FTP 内のExcel への接続
URI をExcel ファイルへのパスが付いたサーバーのアドレスに設定します。認証するには、User およびPassword を設定します。
Google Drive 内のExcel への接続
デスクトップアプリケーションからのGoogle への認証には、InitiateOAuth をGETANDREFRESH に設定して、接続してください。詳細はドキュメントの「Google Drive への接続」を参照してください。
データソースの追加とテーブルの作成
DSN を作成したら、以下の手順に従って、新しいデータソースを追加し、接続をテストし、ColdFusion マークアップファイルを作成し、最後にExcel のデータをインポートして ColdFusion でテーブルに表示します。
-
ColdFusion 管理インターフェースから、Data & Services を選択します。
-
ここで「Add New Data Source」をクリックします。データソース名は、ColdFusion の変数命名規則に準拠していれば任意の名前で構いません。ODBC ドライバーの場合は「ODBC Socket」を選択し、「Add」ボタンをクリックします。
-
ODBC DSN ドロップダウンメニューから CData Excel Sys を選択します。Advanced Settings セクションでは、Connection String は空白のままにしておきます。なお、この入力フィールドで指定されたプロパティは、DSN 設定で指定されたものを上書きします。
-
次に、先ほど作成した CDataExcelODBC データソースの左側にあるチェックマークを押して、接続をテストします。データソースが「OK」ステータスを報告したら、使用する準備ができています。
-
次に、新しい ColdFusion マークアップファイル(.cfm)を作成し、ColdFusion の wwwroot ディレクトリ(「C:\ColdFusion2021\cfusion\wwwroot」)に配置します。
以下のコードでデータソースをクエリします:
<cfquery name="ExcelQuery" dataSource="CDataExcelODBC"> SELECT * FROM Sheet </cfquery>CFTable を使用すると、HTML でテーブルを簡単に出力できます:<cftable query = "ExcelQuery" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"> <cfcol header="<b>Name</b>" align="Left" width=2 text="Name"/> <cfcol header="<b>Revenue</b>" align="Left" width=15 text="Revenue"/> ... </cftable>HTML 部分を含む完全なコードは以下のとおりです:<html> <head><title>CData Software | Excel Sheet Table Demo </title></head> <body> <cfoutput>#ucase("Excel Sheet Table Demo")#</cfoutput> <cfquery name="ExcelQuery" dataSource="CDataExcelODBC"> SELECT * FROM Sheet </cfquery> <cftable query = "ExcelQuery" border = "1" colHeaders colSpacing = "2" headerLines = "2" HTMLTable maxRows = "500" startRow = "1"> <cfcol header="<b>Name</b>" align="Left" width=2 text="Name"/> <cfcol header="<b>Revenue</b>" align="Left" width=15 text="Revenue"/> ... </cftable> </body> </html> -
最後に、ブラウザでコードを実行します。Excel のデータを含むテーブルが表示されます。
なお、CData ODBC ドライバーは cfqueryparam 要素を使用したパラメータ化クエリもサポートしています。例:
SELECT * FROM Account WHERE name =
おわりに
CData ODBC Driver for Excel の 30日間無償トライアルをダウンロードして、Adobe ColdFusion でExcel 連携アプリケーションの構築を始めましょう。ご不明な点がございましたら、サポートチームまでお問い合わせください。