IBM Notes にCSVを読み込ませる
かつてはExcelがLotus 1-2-3形式をサポートしていたのですが、サポートされなくなってから123ファイルの読み込みを使わなくなって久しいものです。
とはいえ、Excelのような表形式ファイルを読み込みたいという需要は引き続きあるため、方法を2つほどご紹介します。
2案とも、このCSVを対応表のように取り込むものとします。
氏名, ふりがな, メールアドレス, 年齢
印九キー太, いんくきーた, in-quii@hogehoge.com, 18
【対応表】
要素 | フィールド名 | データタイプ |
---|---|---|
氏名 | Name | テキスト |
ふりがな | Kana | テキスト |
メールアドレス | テキスト | |
年齢 | Age | 数値 |
1.表形式のテキストファイル用COLファイル(形式ファイル)を使う
以下のようなテキストファイルを1つ作成し、hoge.colなどとして保存してください。
※個人的にはこちらが楽にできるので、この方法をお勧めします。
HEADERLINE 1
; ----------------------------------------------------------------
; 列定義ステートメント
; ----------------------------------------------------------------
Name:UNTIL ",";
Kana:UNTIL ",";
eMail:TYPE Text UNTIL ",";
Age:TYPE Number UNTIL "";
一番最後の項目の区切り文字が""
(空文字列)であることは注意してください。ここを","
としたり、何も指定しないと以下のようなエラーが出てうまく書き込めません。
このファイルを作ったら、次の手順でCSVファイルを読み込みます。
- [ファイル]→[呼び出し]と選択
- 呼び出しCSVを選択。ファイル形式は[Tabular Text] とする。
- 先にファイル形式を[Tabular Text] とすると、拡張子csvのファイルが表示されないので注意
- 以下スクリーンショットのように「形式ファイルの使用」にチェックを入れ、作成したCOLファイルを選択し、OKボタンを押す
COLファイルには@式を入れることも可能で、CSVの値を変更しつつ取り込むことも可能です。
CSVファイルを保持しつつ、NotesDB側の取り込みの際に値を調整したい場合に有用です。
たとえば上記の例の場合フォームが定まらないのですが、以下のように設定することで、CSVからの読み込みをしつつ、フォームを設定することが可能です。
HEADERLINE 1
; ----------------------------------------------------------------
; 列定義ステートメント
; ----------------------------------------------------------------
Name:UNTIL ",";
Kana:UNTIL ",";
eMail:TYPE Text UNTIL ",";
Age:TYPE Number UNTIL "";
; ----------------------------------------------------------------
; 式
; ----------------------------------------------------------------
FORMULASTART
FIELD Form := "UserInfo";
FORMULAEND
他詳しくは、以下を参照ください。
- IBM Knowledge Center - 表形式のテキストファイル用の COL ファイルを記述する
- [B-Com News 54] Notes DB に CSV データをインポート ほか: B-Com News バックナンバー(No. 51 ~ 100): ベストコミュニケーションズ
2.LotusScriptによるアクション等の作りこみにより解決
COLファイルによる読み込みのほうが圧倒的に楽なのですが、LotusScriptによる取り込みも可能です。
以下ページのコードをカスタマイズすることで、取り込みが可能です。
こちらに詳しくまとまっていて、すぐ動くサンプルコードがあるのでリンクを共有します。
……早くxlsxやodsからの呼び出しができるようになるといいのですが。