Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Version: [1.0.0] Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 1 
【B-2】 POI4XPages を使った Word/Excelへの 簡単エクスポート! ...
Version: [###] Classification: Internal 2014/11/19 Owner: [Insert name] 2 
2 
自己紹介 
海老原賢次 
リコーITソリューションズ株式会社 鹿児島開発部 
We...
本日の内容 
POI / POI4XPagesって? 
できること/ できないこと 
POI4XPagesのインストール 
基本的な使い方 
-Word 
-Excel 
[Excel]ビュー以外のデータソースを使用する 
[Exc...
POI / POI4XPagesって? 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 4
POI とは・・・ 
Apache POI 
-Apache POI(アパッチ・ポイまたはピーオーアイ)はApache ソフトウェア財団のプロジェクトで、WordやExcelといった Microsoft Office形式のファイルを読み書きで...
Apache POI 
公式サイト→http://poi.apache.org/ 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 6
POI4XPages 
XPagesで、POIを使いやすくしたエクステンション。 
-ApachePOIを内包 
-Xpagesにコントロールとして配置して使用できる 
-ライセンス→「Apache License 2.0」 
-サイト→Op...
POI4XPages 
環境 
-WindowsServerはもちろん、LinuxServerでも使用可能。 
-IBM Lotus DominoServer version 8.5.3 –9.0.1 で動作確認済み。 XWorkServer...
POI4XPages コントロール 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 9
できること/ できないこと 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 10
できること-Word 
Wordへのエクスポート 
-あらかじめ用意したWordファイルをテンプレートとして、 テンプレート中の特定の場所にNotes文書のフィールド値を当てはめて、 Wordファイル(.docx)またはPDFとしてダウンロー...
できること-Word 
Wordへのエクスポート 
-あらかじめ用意したWordファイルをテンプレートとして、 テンプレート中の特定の表にNotesViewの各列の値を行数に合わせて動的に 書き込み、Wordファイル(.docx)またはPDF...
できること-Excel 
Excelへのエクスポート 
-あらかじめ用意したExcelファイルをテンプレートとして、 テンプレート中の特定のセルにNotes文書のフィールド値を当てはめて、 Excelファイル(.xlsx)またはCSVとしてダ...
できること-Excel 
Excelへのエクスポート 
-あらかじめ用意したExcelファイルをテンプレートとして、 テンプレート中の特定のセルからにNotesViewの各列の値を行数に合わせて動 的に書き込み、Excelファイル(.xlsx...
できること–まとめ 
Word、Excelのテンプレートを用意し、 プロパティを設定するだけで、ほぼノーコーディングで実装で きる! 
Version: 1.0.0 Classification: 19/11/2014 Internal Ow...
できないこと 
残念ながら、リッチテキストを書式を保ったままでの出力はできない。 
-プレーンなテキストに変換したものであれば出力は可能 
Wordの書式を指定できない。テンプレートで予め書式を決めておく必要がある。 (Excelのセルの書...
POI4XPagesのインストール 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 17
POI4XPagesのインストール(1) 
DominoDesignerのプラグインとして配布されているため、 ExtensionLibraryとほぼ同じ手順。 
開発を行うNotesDesignerと、動作環境のDominoに それぞれイ...
POI4XPagesのインストール(2) 
openntfのサイトから、ZIPファイルをダウンロード 
-http://goo.gl/jYiZlZ 
Version: 1.0.0 Classification: 19/11/2014 Inte...
POI4XPagesのインストール(3) 
ZIPファイルの中身 
-中にZIPファイルがあるので、これも解凍する 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIH...
POI4XPagesのインストール(4) 
開発環境(DominoDesigner)のPCにインストールする。 
-DominoDesignerでプラグインをインストールできるようにしておく 
Version: 1.0.0 Classific...
POI4XPagesのインストール(5) 
「biz.webgate.updatesite.poi.zip」を解凍する。 
DominoDesignerで「ファイル」→「アプリケーション」→「インストール」を選択する。 
Version: ...
POI4XPagesのインストール(6) 
「インストール/更新」のダイアログでは「インストールする新しいフィーチャーの検索」を選択 し、「次へ」を押す。 
Version: 1.0.0 Classification: 19/11/2014 ...
POI4XPagesのインストール(7) 
「フォルダーロケーションの追加」をクリックし、先に解凍したフォルダ内にある 「biz.webgate.updatesite.poi」を指定して「完了」 
Version: 1.0.0 Classif...
POI4XPagesのインストール(8) 
インストールするフィーチャーとして、トップにチェックを入れて、「次へ」を押す。 
ライセンス条項が表示されるので、同意して「次へ」でインストールが行われる 
Version: 1.0.0 Clas...
POI4XPagesのインストール(9) 
DominoDesigner/Notesを再起動し、XPageの設計を開いて、POI4XPagesのコ ントロールが表示されていればOK 
Version: 1.0.0 Classification...
POI4XPagesのインストール(10) 
サーバーへのインストール 
-上で解答したZIPの中の「features」「plugins」をフォルダごと、Dominoサーバーのデータフォルダの 「¥domino¥workspace¥appli...
基本的な使い方 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 28
テンプレートの配置 
テンプレートはDBの「リソース」-「ファイル」に配置する 
なお、テンプレートは必須。 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHAR...
コントロールの配置 
ダウンロードが必要な画面に、コントロールをドラッグ&ドロップする。 これは配置されたところに何か表示するものではないので、画面内のどこでも良い。 
Version: 1.0.0 Classification: 19/11...
プロパティの設定 
画面に登録したら、出力するための諸設定をプロパティに記述する 詳細は後ほど 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji ...
ダウンロードボタンの設定 
クリックしたらExcelやWordがダウンロードされるボタンを設置する。 
シンプルアクションで、定義できる。その際、上で貼り付けたPOI4XPagesのIDを指定す る。 
Version: 1.0.0 Cla...
Excelへのエクスポート 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 33
テンプレートを作る 
Excelへエクスポートするひな形となるファイル(.xlsx)を作成する。 ※Excelのテンプレート形式(.xltx)でなくてもいいです。 
下記のポイントを守って、普通にエクセルでファイルを作るだけ。 
ポイント...
テンプレート例 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 35
テンプレートの配置 
テンプレートはDBの「リソース」-「ファイル」に配置する 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 36
テンプレートファイルの指定 
POI4XPagesの「POIWorkbook」(エクセルのアイコン)コントロールの設定をする。 
まず、テンプレートの指定をする。 
Version: 1.0.0 Classification: 19/11/...
シートの指定 
設定にシートの情報を追加する。このコントロールでは、シートのことを「Table」としている。 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA...
置換文字列の指定 
テンプレートで<<>>で囲った文字の登録と、置換する値を指定する。 
値は、もちろんSSJSで動的に変えることができる。 
Version: 1.0.0 Classification: 19/11/2014 Intern...
繰り返しで表示するデータソースの設定 
繰り返して表示する部分のデータソース(ここではビュー)を指定する。 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA ...
繰り返しで表示するデータソースの設定 
これらの設定は必須です 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 41 
「dataSourceV...
列の表示の設定(列の値) 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 42 
セルの書式(罫線など)を設定 
テンプレートの何列目か(0始まり...
列の表示の設定(計算値) 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 43 
「computeValue」にSSJSを入れる。 
「colum...
ファイル名の設定 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 44 
ダウンロードした時のファイル名を指定する 
ここに指定したパスでREST...
demo 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 45
RESTによるダウンロード 
コントロールの「pathInfo」で指定したパスをつけたURLでアクセスすると、画面を開かず にファイルをダウンロードできる。 
URLは、.xspの後ろに、「pathInfo」で指定した文字をつける。 
例...
Wordへのエクスポート 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 47
テンプレートを作る 
Wordへエクスポートするひな形となるファイルを作成する。 
下記のポイントを守って、普通にエクセルでファイルを作るだけ。 
ポイント 
-<<>>でくくった文字で書いたところは、任意の文字列に置換できる。 例えば、...
テンプレート例 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 49
置換部分<<>>の注意 
<<hoge>>の間で書式が異なると、内部で文字が繋がらずに置換されない。 
また、見た目が全く同じ書式でも内部では繋がってない場合がある。 
そこで、<<>>の部分は書いて書式を設定した後、一度切り取ってプレー...
テンプレートの配置 
テンプレートはDBの「リソース」-「ファイル」に配置する 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 51
テンプレートファイルの指定 
POI4XPagesの「POIDocument」(ワードのアイコン)コントロールの設定をする。 
まず、テンプレートの指定から。 
Version: 1.0.0 Classification: 19/11/20...
置換文字列の指定 
テンプレートで<<>>で囲った文字の登録と、置換する値を指定する。 
値は、もちろんSSJSで動的に変えることができる。 通常は、ページのデータソースである文書を参照する。 
Version: 1.0.0 Classif...
ビューを表にエクスポート 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 54 
「viewName」にビュー名を指定 
文書を絞り込む場合は、「...
表の列の設定 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 55 
Wordの表に表示する列ヘッダ名 
ビューの列名。 
列番号(0始まり)
demo 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 56
[Excel]ビュー以外のデータソースを使用する 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 57
[Excel]ビュー以外のデータソースを使用する 
他のサーバーのDBのViewや文書をデータソースにしたい。 
View以外のデータのリストをデータソースにしたい。 
データを読み込んで、オブジェクトのリストを作成、それをデータソースと...
他のサーバーからビューを取得しデータソースとする 
「dataSource」で、「ListObjectDataSource」を選択し、「buildValues」に配列を 返す式を記述する。 
ここでは、SSJSの関数を呼び出している。 
V...
配列を返す関数の例 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 60 
master.getMemberListExpData= functi...
列の設定 
列は、先に「var」プロパティに指定したリスト内のオブジェクトが割り当てられる変数を使 用する。 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA...
[Excel]任意のセルに値を追加する 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 62
cellValueプロパティ 
cellValueプロパティには、<<>>を置換する「cellBookmark」と 列番号と行番号を指定して値を記述する「cellValue」がある。 
このCellValueを画面のプロパティ設定からではな...
コントロールのプロパティ 
コントロールのプロパティは、テンプレートとシート名のみを記述したテーブル定 義を行うだけ。 
Version: [###] Classification: 2014/11/19 Internal Owner: [I...
CellValueにプログラムで値を追加する 
Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 65 
varspreadExp= getCompo...
最後に 
19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 66
最後に 
POI4XPagesは、まだ成長中のコントロールで、まだまだ荒削りなところもあります。 
今後も最新情報をブログで公開していきますので、そちらの方もよろしくお願いします。 
ブログXPagesで行こう!(IBM develope...
POI4XPagesを使ったword-excelへの簡単エクスポート
Upcoming SlideShare
Loading in …5
×

POI4XPagesを使ったword-excelへの簡単エクスポート

4,212 views

Published on

2014年11月19日に開催した XPagesDay2014 のセッション使用した資料になります。

Published in: Software
  • Be the first to comment

POI4XPagesを使ったword-excelへの簡単エクスポート

  1. 1. Version: [1.0.0] Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 1 【B-2】 POI4XPages を使った Word/Excelへの 簡単エクスポート! 2014年11月19日 リコーITソリューションズ株式会社
  2. 2. Version: [###] Classification: Internal 2014/11/19 Owner: [Insert name] 2 2 自己紹介 海老原賢次 リコーITソリューションズ株式会社 鹿児島開発部 Webアプリ開発を10年以上手がけ、 XPagesは2009年から取り組んでおり、 多くの導入実績を持ちます。 IBMChampions2014for ICSに任命されました! 九州地区Notesパートナー会、Notesコンソーシアム九州地区研究会等に参加 ブログXPagesで行こう!(IBM developerWorks内):http://goo.gl/fS44AH Facebook:http://goo.gl/jbBsyB twitter:@mushinome
  3. 3. 本日の内容 POI / POI4XPagesって? できること/ できないこと POI4XPagesのインストール 基本的な使い方 -Word -Excel [Excel]ビュー以外のデータソースを使用する [Excel]任意のセルに値を追加する Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 3
  4. 4. POI / POI4XPagesって? 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 4
  5. 5. POI とは・・・ Apache POI -Apache POI(アパッチ・ポイまたはピーオーアイ)はApache ソフトウェア財団のプロジェクトで、WordやExcelといった Microsoft Office形式のファイルを読み書きできる 100% Javaライブラリとして提供されている。 (Wikipediaより引用→ http://ja.wikipedia.org/wiki/Apache_POI) -つまり、MSOfficeのライブラリを使用せずにOffice文書の読み 書きができる! Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 5
  6. 6. Apache POI 公式サイト→http://poi.apache.org/ Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 6
  7. 7. POI4XPages XPagesで、POIを使いやすくしたエクステンション。 -ApachePOIを内包 -Xpagesにコントロールとして配置して使用できる -ライセンス→「Apache License 2.0」 -サイト→OpenNTFhttp://goo.gl/mpLs4VGithubhttp://goo.gl/37k8Es Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 7
  8. 8. POI4XPages 環境 -WindowsServerはもちろん、LinuxServerでも使用可能。 -IBM Lotus DominoServer version 8.5.3 –9.0.1 で動作確認済み。 XWorkServerでもいけるらしい。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 8
  9. 9. POI4XPages コントロール Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 9
  10. 10. できること/ できないこと 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 10
  11. 11. できること-Word Wordへのエクスポート -あらかじめ用意したWordファイルをテンプレートとして、 テンプレート中の特定の場所にNotes文書のフィールド値を当てはめて、 Wordファイル(.docx)またはPDFとしてダウンロードする。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 11 Notes文書 name: “えびはら” Location:“鹿児島” テンプレート Wordファイル ・名前「<<name>>」 ・出身地「<<Location>>」 Wordファイル ・名前「えびはら」 ・出身地「鹿児島」
  12. 12. できること-Word Wordへのエクスポート -あらかじめ用意したWordファイルをテンプレートとして、 テンプレート中の特定の表にNotesViewの各列の値を行数に合わせて動的に 書き込み、Wordファイル(.docx)またはPDFとしてダウンロードする。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 12 テンプレート Wordファイル Wordファイル name location 海老原 鹿児島 佐藤 東京 鈴木 名古屋 中島 大阪 Notes View 名前 所在地 Word内の表 名前 所在地 海老原 鹿児島 佐藤 東京 鈴木 名古屋 中島 大阪 もちろん、前との組み合わせたテンプレート でも可能
  13. 13. できること-Excel Excelへのエクスポート -あらかじめ用意したExcelファイルをテンプレートとして、 テンプレート中の特定のセルにNotes文書のフィールド値を当てはめて、 Excelファイル(.xlsx)またはCSVとしてダウンロードする。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 13 Notes文書 name: “えびはら” Location:“鹿児島” 名前 <<name>> 所在地 <<location>> 名前 えびはら 所在地 鹿児島
  14. 14. できること-Excel Excelへのエクスポート -あらかじめ用意したExcelファイルをテンプレートとして、 テンプレート中の特定のセルからにNotesViewの各列の値を行数に合わせて動 的に書き込み、Excelファイル(.xlsx)またはCSVとしてダウンロードする。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 14 名前 所在地 名前 所在地 海老原 鹿児島 佐藤 東京 鈴木 名古屋 中島 大阪 name location 海老原 鹿児島 佐藤 東京 鈴木 名古屋 中島 大阪 Notes View もちろん、前との組み合わせたテンプレートでも可能
  15. 15. できること–まとめ Word、Excelのテンプレートを用意し、 プロパティを設定するだけで、ほぼノーコーディングで実装で きる! Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 15
  16. 16. できないこと 残念ながら、リッチテキストを書式を保ったままでの出力はできない。 -プレーンなテキストに変換したものであれば出力は可能 Wordの書式を指定できない。テンプレートで予め書式を決めておく必要がある。 (Excelのセルの書式は指定可能) Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 16
  17. 17. POI4XPagesのインストール 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 17
  18. 18. POI4XPagesのインストール(1) DominoDesignerのプラグインとして配布されているため、 ExtensionLibraryとほぼ同じ手順。 開発を行うNotesDesignerと、動作環境のDominoに それぞれインストールが必要。 ここでは、Updateサイトを利用しない場合のインストール方法をご紹介。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 18
  19. 19. POI4XPagesのインストール(2) openntfのサイトから、ZIPファイルをダウンロード -http://goo.gl/jYiZlZ Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 19
  20. 20. POI4XPagesのインストール(3) ZIPファイルの中身 -中にZIPファイルがあるので、これも解凍する Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 20 サンプルDB(ExtentionLibraryが必要) プラグイン本体 プラグインのソースコード(動作環境には必要ない)
  21. 21. POI4XPagesのインストール(4) 開発環境(DominoDesigner)のPCにインストールする。 -DominoDesignerでプラグインをインストールできるようにしておく Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 21
  22. 22. POI4XPagesのインストール(5) 「biz.webgate.updatesite.poi.zip」を解凍する。 DominoDesignerで「ファイル」→「アプリケーション」→「インストール」を選択する。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 22
  23. 23. POI4XPagesのインストール(6) 「インストール/更新」のダイアログでは「インストールする新しいフィーチャーの検索」を選択 し、「次へ」を押す。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 23
  24. 24. POI4XPagesのインストール(7) 「フォルダーロケーションの追加」をクリックし、先に解凍したフォルダ内にある 「biz.webgate.updatesite.poi」を指定して「完了」 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 24
  25. 25. POI4XPagesのインストール(8) インストールするフィーチャーとして、トップにチェックを入れて、「次へ」を押す。 ライセンス条項が表示されるので、同意して「次へ」でインストールが行われる Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 25
  26. 26. POI4XPagesのインストール(9) DominoDesigner/Notesを再起動し、XPageの設計を開いて、POI4XPagesのコ ントロールが表示されていればOK Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 26 ※Notes/Administratorが上がっている場合は、 すべて落として起動しなおしてください
  27. 27. POI4XPagesのインストール(10) サーバーへのインストール -上で解答したZIPの中の「features」「plugins」をフォルダごと、Dominoサーバーのデータフォルダの 「¥domino¥workspace¥applications¥eclipse」にコピーします。 コピーしたら、DominoサーバーのHTTPタスクを再起動する。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 27 ドラッグ&ドロップ
  28. 28. 基本的な使い方 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 28
  29. 29. テンプレートの配置 テンプレートはDBの「リソース」-「ファイル」に配置する なお、テンプレートは必須。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 29
  30. 30. コントロールの配置 ダウンロードが必要な画面に、コントロールをドラッグ&ドロップする。 これは配置されたところに何か表示するものではないので、画面内のどこでも良い。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 30 ドラッグ&ドロップ
  31. 31. プロパティの設定 画面に登録したら、出力するための諸設定をプロパティに記述する 詳細は後ほど Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 31
  32. 32. ダウンロードボタンの設定 クリックしたらExcelやWordがダウンロードされるボタンを設置する。 シンプルアクションで、定義できる。その際、上で貼り付けたPOI4XPagesのIDを指定す る。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 32 POI 4Xpages を指定 コントロールのIDを指定
  33. 33. Excelへのエクスポート 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 33
  34. 34. テンプレートを作る Excelへエクスポートするひな形となるファイル(.xlsx)を作成する。 ※Excelのテンプレート形式(.xltx)でなくてもいいです。 下記のポイントを守って、普通にエクセルでファイルを作るだけ。 ポイント -ビューのデータなど繰り返しで表示する部分を決めておく。 -<<>>でくくった文字で書いたところは、任意の文字列に置換できる。 例えば、日付やユーザー名等。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 34
  35. 35. テンプレート例 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 35
  36. 36. テンプレートの配置 テンプレートはDBの「リソース」-「ファイル」に配置する Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 36
  37. 37. テンプレートファイルの指定 POI4XPagesの「POIWorkbook」(エクセルのアイコン)コントロールの設定をする。 まず、テンプレートの指定をする。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 37 リソースに配置したファイル名を記載する 「templateSource」で[+]を押して、 「resourcetemplate」を選択
  38. 38. シートの指定 設定にシートの情報を追加する。このコントロールでは、シートのことを「Table」としている。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 38 ここで[+]を押すと、table が追加される ここでのtableとは、Excelのシート テンプレートの対象のシート名を記載 “false”で固定
  39. 39. 置換文字列の指定 テンプレートで<<>>で囲った文字の登録と、置換する値を指定する。 値は、もちろんSSJSで動的に変えることができる。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 39 「cellValues」で[+]を押して、「cellBookmark」を選択する 「name」にテンプレートで<<>>で囲った文字を記述 「value」に置換する値をSSJSで記述
  40. 40. 繰り返しで表示するデータソースの設定 繰り返して表示する部分のデータソース(ここではビュー)を指定する。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 40 「dataSource」で[+]を押して、「diminoViewSource」を選択する 「viewName」にビュー名を指定する(別名可) 「exportDefinitions」で[+]を押して、「data2rowExport」を選択する
  41. 41. 繰り返しで表示するデータソースの設定 これらの設定は必須です Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 41 「dataSourceVar」にSSJSでデータソースにアクセスする場合の 変数名を定義 「index」にSSJSで行のインデックス(0,1,2,・・・)にアクセスする場合の 変数名を定義 テンプレートで繰り返しを開始する行 何列目からかは、列の設定で行う データ1行あたりのテンプレートに記載する行数 「現在の行」のデータ(NotesViewEntry)にアクセスする場合の変数名
  42. 42. 列の表示の設定(列の値) Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 42 セルの書式(罫線など)を設定 テンプレートの何列目か(0始まり) NotesViewの列ヘッダ (プログラムで使用する別名は不可) 縦にグルーピングする時など、飛ばす行数 [+]を押すと、列を追加できる
  43. 43. 列の表示の設定(計算値) Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 43 「computeValue」にSSJSを入れる。 「columnTitle」は空にする 列の値を加工して出力したい場合、SSJSで計算した値を出力できる。 その際に、上で「dataSourceVar」,「index」,「var」に設定した変数名が使用できる。
  44. 44. ファイル名の設定 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 44 ダウンロードした時のファイル名を指定する ここに指定したパスでRESTによるダウンロードができる (後述)
  45. 45. demo Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 45
  46. 46. RESTによるダウンロード コントロールの「pathInfo」で指定したパスをつけたURLでアクセスすると、画面を開かず にファイルをダウンロードできる。 URLは、.xspの後ろに、「pathInfo」で指定した文字をつける。 例: Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 46
  47. 47. Wordへのエクスポート 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 47
  48. 48. テンプレートを作る Wordへエクスポートするひな形となるファイルを作成する。 下記のポイントを守って、普通にエクセルでファイルを作るだけ。 ポイント -<<>>でくくった文字で書いたところは、任意の文字列に置換できる。 例えば、日付やユーザー名等。→注意!(後述) -ビューのデータなど繰り返しで表示する部分を表で作成する。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 48
  49. 49. テンプレート例 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 49
  50. 50. 置換部分<<>>の注意 <<hoge>>の間で書式が異なると、内部で文字が繋がらずに置換されない。 また、見た目が全く同じ書式でも内部では繋がってない場合がある。 そこで、<<>>の部分は書いて書式を設定した後、一度切り取ってプレーンテキストで 貼り付ける。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 50
  51. 51. テンプレートの配置 テンプレートはDBの「リソース」-「ファイル」に配置する Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 51
  52. 52. テンプレートファイルの指定 POI4XPagesの「POIDocument」(ワードのアイコン)コントロールの設定をする。 まず、テンプレートの指定から。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 52 「resourcetemplate」を選択 リソースに配置したファイル名を記載する ダウンロードした時のファイル名を指定する ここに指定したパスでRESTによるダウンロードができる
  53. 53. 置換文字列の指定 テンプレートで<<>>で囲った文字の登録と、置換する値を指定する。 値は、もちろんSSJSで動的に変えることができる。 通常は、ページのデータソースである文書を参照する。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 53 「bookmarks」で[+]を押して、「docBookmark」を選択する 「name」にテンプレートで<<>>で囲った文字を記述 「value」に置換する値をSSJSで記述
  54. 54. ビューを表にエクスポート Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 54 「viewName」にビュー名を指定 文書を絞り込む場合は、「key」でgetDocumentByKeyの引数と同じものを入れる 注)数字と文字列は厳密に区別される。文字列で統一するのが良い テンプレート内の何番目のテーブルに入れるのか(1始まり) ※文書内の2つ目のテーブルから1と数える 列設定のヘッダを表示するか。 (テンプレートでは指定できない)
  55. 55. 表の列の設定 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 55 Wordの表に表示する列ヘッダ名 ビューの列名。 列番号(0始まり)
  56. 56. demo Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 56
  57. 57. [Excel]ビュー以外のデータソースを使用する 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 57
  58. 58. [Excel]ビュー以外のデータソースを使用する 他のサーバーのDBのViewや文書をデータソースにしたい。 View以外のデータのリストをデータソースにしたい。 データを読み込んで、オブジェクトのリストを作成、それをデータソースとする Version: [###] Classification: 2014/11/19 Internal Owner: [Insert name] 58
  59. 59. 他のサーバーからビューを取得しデータソースとする 「dataSource」で、「ListObjectDataSource」を選択し、「buildValues」に配列を 返す式を記述する。 ここでは、SSJSの関数を呼び出している。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 59 列の設定で、この変数を使用する “values”ではないので注意
  60. 60. 配列を返す関数の例 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 60 master.getMemberListExpData= function(){ varret = new java.util.Vector(); varrow, nav, entry,doc; vartview= database.getView('memberList'); nav= tview.createViewNav(); entry = nav.getFirst(); while(!!entry){ if(entry.isDocument()){ doc = entry.getDocument(); row = { memberId: doc.getItemValueInteger('memberId'), lastName: doc.getItemValueString('lastName'), lastNameKana: doc.getItemValueString('lastNameKana'), firstName: doc.getItemValueString('firstName'), firstNameKana: doc.getItemValueString('firstNameKana'), age: doc.getItemValueInteger('age'), gender: doc.getItemValueString('gender'), email: doc.getItemValueString('email'), prefecture: doc.getItemValueString('prefecture'), town: doc.getItemValueString('town') }; ret.add(row);doc.recycle(); } entry = nav.getNext(); } nav.recycle();tview.recycle(); return ret;} この例では、自分のDatabaseからViewを取ってきているが、別の サーバーのDatabaseをGetしてViewを取得しても問題ない このオブジェクトのリストを生成している
  61. 61. 列の設定 列は、先に「var」プロパティに指定したリスト内のオブジェクトが割り当てられる変数を使 用する。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 61
  62. 62. [Excel]任意のセルに値を追加する 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 62
  63. 63. cellValueプロパティ cellValueプロパティには、<<>>を置換する「cellBookmark」と 列番号と行番号を指定して値を記述する「cellValue」がある。 このCellValueを画面のプロパティ設定からではなく、プログラムで追加することで、動的に 任意のセルに値を埋めることができる。 次の例では、NotesViewから、NotesViewEntryを取得し、各列の値を POI4XPagesのCellValueに追加する。 Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 63
  64. 64. コントロールのプロパティ コントロールのプロパティは、テンプレートとシート名のみを記述したテーブル定 義を行うだけ。 Version: [###] Classification: 2014/11/19 Internal Owner: [Insert name] 64 データソースも列の設定もしません。 cellValueにSSJSでセルと値を追加していきます
  65. 65. CellValueにプログラムで値を追加する Version: 1.0.0 Classification: 19/11/2014 Internal Owner: EBIHARA Kenji 65 varspreadExp= getComponent(‘viewExportToExcel’);//POI4XPagesのコントロールを取得 varspread = spreadExp.getSpreadsheets()[0]; //画面で定義した「テーブル」を取得 varnav= targetView.createViewNav();//“targetView”は定義済みのNotesViewオブジェクト varent= nav.getFirst(); varrow = 0, col = 0, val; while(!!ent){ varvals= ent.getColumnValues(); col = 1; for(vari=0,max=vals.length; i<max; i++){ val= !(vals[i]) ? '' : vals[i]; spread.addCellValue( // 上で取得したSpreadにCellValueを追加する poiBean.buildCellValue(col,row,val.toString()) //CellValueのオブジェクトを作成。引数は、 //セルの列番号、行番号、値(文字列)とする ); col++; } row++; ent= nav.getNext(ent); } poiBeanは、POI4XPagesを利用すると自動的に作 られるオブジェクト
  66. 66. 最後に 19/11/2014 Version: 1.0.0 Classification: Internal Owner: EBIHARA Kenji 66
  67. 67. 最後に POI4XPagesは、まだ成長中のコントロールで、まだまだ荒削りなところもあります。 今後も最新情報をブログで公開していきますので、そちらの方もよろしくお願いします。 ブログXPagesで行こう!(IBM developerWorks内): http://goo.gl/fS44AH Version: [###] Classification: 2014/11/19 Internal Owner: [Insert name] 67

×