| 入力 | フォーマット | Binary |
|---|---|---|
| 接続数 | 1 | |
| 説明 | 読み込むExcelファイルのバイナリイメージ。 | |
| 出力 | フォーマット | Record |
| 説明 |
Excelファイル中の、Excelビルダーで定義したレコード領域の内容。 フィールド名の定義はExcelビルダー上で行い、フローデザイナー上では変更できません。 |
| 名前 | プロパティ型 | マッピング | 説明 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 空レコードを無視 | boolean | 入力&出力 |
空行の扱いを指定します。 ループの中でマッパーにより値が差し込まれた場合は、初回のみが有効となります。
|
||||||
| 計算結果の丸め処理 | boolean | - |
ワークブックに保存されている計算結果に丸め処理を行うかどうかを指定します。 エクセルは計算結果が数値である場合、64ビットの浮動小数点バイナリ値としてワークブックに保存しています。このため、計算結果によっては10進数で演算した値に誤差が生じる場合があります。 (例) 350 * 0.7 = 244.99999999999997 このような場合、エクセルは有効数字15桁までしか表示しないため、セル上には245と表示されます。計算結果の丸め処理を「はい」にすると、本コンポーネントの取得する値は、セル上に表示される値(表示桁数を最大にした場合)と同じになります。「いいえ」にすると、本コンポーネントは、エクセルが内部的に保持する値をそのまま取得します。
|
||||||
| ループを開始 | loopProcess | - |
Excelビルダーで定義したレコード領域の複数レコードをまとめて出力するか1レコードずつループして出力するか選択します。
|
||||||
| シート | category | 入力&出力 |
Excelビルダーで単一セル・レコードを定義したときのシート名が「定義上のシート名」にリストされます。各シートに対応する「読み込むシート名」に値を指定すると、定義したときのシート名に置き換えて、このシート名のセルからデータを読み込みます。 このプロパティはマッパーで値を変更可能なので、入力するシートをフロー中で動的に選択することができます。 |
||||||
| 単一セル | category | 入力 |
Excelファイル中の、Excelビルダーで定義した単一セル領域です。フロー実行時に、対応するセルのデータがこのプロパティに読み込まれます。また、このプロパティは自動的にストリーム変数になります。本コンポーネントの後に連結したマッパーで、ストリーム変数として見えるようになっています。ストリーム変数については、フローデザイナーマニュアルのストリーム変数、コンポーネント定義のストリーム変数を参照してください。 フィールド名の定義はExcelビルダー上で行い、フローデザイナー上では変更できません。 |
Excelビルダーで定義したレコード領域に複数レコードが存在し、ループを開始が「はい」の場合にループの起点となります。
| コミット | 何もしません。 |
|---|---|
| ロールバック | 何もしません。 |
| タイプ | パラ メータ | エラー処理フロー へのストリーム | エラー コード | 説明 |
|---|---|---|---|---|
| 汎用 | なし | コンポーネントの入力ストリーム | なし | Excelビルダーで定義したセルから読み込めない場合 |
| なし | フローのフィールド型への変換エラーが発生した場合 | |||
| なし | サポートされない形式のExcelファイルを開こうとした場合。 Excel95より古い形式のExcelファイルは、Excel95以降の形式で保存し直す必要があります。 |
Excel95以降の形式のExcelファイルが読み込み可能です。ただし、一部の複雑なワークブックの場合に読み込みに失敗することがあります。
1ファイルで最大30MBまでの読み込みをサポートします。ただし、計算式の結果文字列については最大8KB(全角4096文字)までの制限があります。
Excelフォーマットでは1セルごとに10バイトから20バイト程度の付加情報があるため読み込むデータ量に比較してセル数は減少します。
値の型 セル数の目安 数値 180万セル 文字列 120万セル(4バイト、全角2文字程度の場合) 30万セル(80バイト、全角40文字程度の場合) 3600セル(8Kバイト、全角4096文字程度の場合)
コンポーネントアイコンの右クリックメニューからExcel(Input)コンポーネントとExcelSlim(Input)コンポーネントを切り替える機能は、レコードが複数定義されている場合は動作しません。
本コンポーネントで、結合セルから値または書式情報を読み込む場合、結合セル範囲の左上のアドレスを指定してください。
たとえば、単一セルの場合、結合セルC3:D5からデータを読み込む場合、C3を指定します。
レコード領域の場合も同様に、1レコード1行の場合であれば、結合セルの一番左のフィールドから、1レコード複数行の場合であれば、結合セルの一番左上のフィールドから読み込むようにします。
計算結果の丸め処理を「はい」にすると、エクセルの表示する計算結果と同じ値が得られますが、これは計算結果の内部表現値とは異なるため、注意が必要です。
たとえば、
セルA1: 350 セルA2: =A1*0.7 セルA3: =A2-244となっていた場合、書式設定で小数点以下15桁を表示するようにすれば、エクセル上でも、
セルA1: 350.000000000000000 セルA2: 245.000000000000000 セルA3: 0.999999999999972のようにA3では計算誤差が表示上にも現われます。
エクセルでは、日付/時刻形式の書式設定が行われているセルに保持されている実際の値は、1900年1月1日を1とし、以降24時間ごとに1を加算する浮動小数値となります。Excel(Input)コンポーネントおよびExcelSlim(Input)コンポーネントでこのようなセルの値を読み込む場合、DateTime型やDouble型として読み込む場合は結果が同一になりますが、String型をして読み込む場合は結果が異なります。Excel(Input)コンポーネントでは上記浮動小数値をString型に変換した文字列になるのに対して、ExcelSlim(Input)コンポーネントではフローサービスのDateTime型をString型に変換した文字列になります。これは各コンポーネントが使用する外部ライブラリの日付/時刻セルの扱いに違いがあることに起因するものです。
本コンポーネントではこのようなセルはDateTime型として読み込んで使用されることを推奨します。