Forguncy 8 オンラインヘルプ
プラグイン / プリインストールプラグイン / CSVインポート/エクスポートコマンド
このトピックで
    CSVインポート/エクスポートコマンド
    このトピックで

    プリインストールプラグインです。

    コマンドに「CSVインポート/エクスポート」が指定できるようになり、CSVファイル(カンマで区切られたテキスト形式)からデータをリストビューにインポートしたり、リストビューからCSVファイルにエクスポートしたりすることができます。

    テーブルではなくリストビューに対するコマンドです。リストビューに対してデータをインポートしたり、表示されているリストビューからエクスポートしたりすることができます。

    ダウンロードリンク

    ImportExportCSV_8_0_5_1.zip

    使い方

    1. テーブルを1つ作成します。

    2. ページにリストビューを配置して、テーブルとデータ連結させておきます。コマンド設定するために、そのページにボタン型セルを配置します。

    3. 2で配置したボタン型セルを選択し、右ペインの[セル型]タブの「コマンド...」をクリックして[CSVインポート/エクスポートコマンドを設定します。

      処理の種類

      インポート

      インポートを選択すると、次の図のように[ヘッダー名で列の関連付けを定義する]チェックボックスが表示されます。

      チェックした場合、CSVファイルの先頭行をヘッダーとみなして、リストビューの該当セルにインポートできます。

      チェックしない場合、CSVファイルのカンマ区切りごとに1から始まる連番をインデックスとして指定して、リストビューの該当セルにインポートできます。

      エクスポート

      エクスポートを選択すると、以下の図のように「ヘッダー名もエクスポートする」チェックボックスが表示されます。

      チェックした場合、リストビューのヘッダーがCSVの先頭行のデータとしてエクスポートされます。

      チェックしない場合、データのみがエクスポートされます。

      対象リストビュー

      インポートやエクスポートの対象となるリストビューを選択します。

      インポートモード

      インポートの方式を次の3種類から指定します。

      • 追加:インポート先のリストビューに対して、単純にCSVファイルのデータを追加するかたちでインポートします。

      • マージ:[一意となる列]の設定に従い、すでにリストビュー上に存在している行については、CSVファイルからインポートするデータで更新を行います。インポート元のCSVファイルには存在しないが、インポート先のリストビューには存在する行を削除することはありません。インポート元のCSVファイルにのみ存在するデータについては、新しい行としてリストビューに追加されます。

      • 置き換え:[一意となる列]の設定に従い、すでにリストビュー上に存在している行については、CSVファイルからインポートするデータで更新を行います。インポート元のCSVファイルには存在しないが、インポート先のリストビューには存在する行は削除されます。インポート元のCSVファイルにのみ存在するデータについては、新しい行としてリストビューに追加されます。

      既定値は「追加」です。

      注意:

      「マージ」と「置き換え」はリストビューに表示されている値に対して行われることにご注意ください。
      例えば、クエリー条件を設定している場合や、「ロードオンデマンド」がオンの場合に「マージ」を行うと、リストビューに表示されているものの中で操作が行われます。そのため、マージ対象であるはずのデータがリストビューに表示されていない場合、そのデータは追加行として保存されます。
      「置き換え」の場合は、表示されている行のみが削除されます。

      その他の設定

      文字コード

      インポートするテキストファイルの文字コードを設定します。本設定は[処理の種類]が「インポート」の場合にのみ設定可能です。本設定項目に何も指定しなかった場合(空文字を設定した場合)、使用される文字コードは「UTF-8」です。また、[処理の種類]が「エクスポート」の場合も、出力されるCSVファイルの文字コードは常に「UTF-8」となります。

      選択肢としてドロップダウンリストに表示されている文字コード以外にも、使用しているWebブラウザーがサポートしている文字コードであれば使用可能です。その場合に指定する文字コードの名称は、World Wide Web Consortium(ワールド・ワイド・ウェブ・コンソーシアム)が標準策定を行っているEncodingの名称を参照してください。

      フィールド区切り記号

      選択肢として、「,」、「¥t」、「|」、「;」の4つが用意されています。「¥t」はタブ文字を表します。選択肢以外の任意の文字を設定することも可能です。フィールド区切り記号として不正な文字が設定された場合、Forguncyは自動的に「,」を区切り記号として使用します。既定値は「,」です。

      行の区切り記号

      選択肢として、「¥r¥n」、「¥r」、「¥n」の3つが用意されています。「¥r¥n」はWindowsの改行文字として使用されるCR+LF、「¥r」はCR、「¥n」はUnix系OS全般やmacOSの改行文字として使用されるLFを表します。選択肢以外の任意の文字を設定することも可能です。

      行の区切り記号が設定されていない(空文字)場合、インポート処理では自動的に行の区切り文字を判別する動作となり、エクスポート処理では「¥r¥n」が出力されます。

      行の区切り記号として不正な文字が設定された場合、インポート処理では「¥n」が使用され、エクスポート処理では「¥r¥n」が使用されます。

      既定値は空文字です。

      文字列の引用符

      文字列の引用符を変更することで、任意の文字列を値の開始と終了として識別できます。 既定値は「"」(ダブルクォーテーション)です。「$ ( ) * + . [ ? \ ^ { | . 」は指定できません。

      • [すべてのフィールドの値に文字列の引用符を付加する]チェックオプションは[処理の種類]が「エクスポート」の場合にのみ設定可能です。既定値は無効です。
        • 有効に設定した場合:すべての値に文字列の引用符が使用されます。
        • 無効に設定した場合:CSVを読み取る際に障害を含む値が存在する場合にのみに文字列の引用符が使用されます。
           例)区切り文字、引用符に設定した文字、改行文字、半角スペース

      ヒント:

      • [文字列の引用符]に設定した値をCSVデータの値に含める場合、2回連続で[文字列の引用符]を記入することで含めることができます。(例:文字列の引用符が「"」の場合、「""」と記入すると「"」と出力されます。

      ファイル名

      「エクスポート」の場合にのみ設定可能です。

      • 「リストビューと同じ名前にする 」がチェックされている場合、リストビューの名称を使用してエクスポートします。
      • 「リストビューと同じ名前にする 」がチェックされていない場合、ファイルの名称を設定します。アプリケーション実行中はその設定された名称でエクスポートします。

      フイルの拡張子

      インポートするファイル、またはエクスポートされるファイルの拡張子を指定します。既定値は「csv」です。

      列の関連付け定義

      列の関連付け定義を追加

      クリックすると、インポート/エクスポートの列の定義を、リストの末尾に1行追加します。

      列の関連付け定義を削除

      クリックすると、フォーカスのある列の定義を削除します。

      1つ上へ移動

      定義した列の順番を上へ移動します。

      1つ下へ移動

      定義した列の順番を下へ移動します。

      リストビューの列(セル参照)

      インポート先/エクスポート元のリストビューの列を指定します。

      CSVのヘッダー名

      インポート元/エクスポート先のCSVファイルのヘッダー名を指定します。
      [処理の種類]が「インポート」の場合、本設定のヘッダー名は、インポート元のCSVファイルの1行目と一致している必要があります。不一致の場合、エラーメッセージが表示されます。

      一意となる列

      インポートモードが「マージ」、または「置き換え」の場合にのみ表示される設定です。チェックした列が一致しているデータ(行)をCSVインポート時に同一のデータと判断して、マージや置き換え処理を行います。日付/時刻型フィールド、および時刻型フィールドは[一意となる列]をサポートしていません。

      [一意となる列]で指定した列の値が一意になっていなかった場合、エラーメッセージが表示されインポート処理はロールバックされます。

      インポート完了時にメッセージを表示する。

      インポート処理が成功し、完了した際にメッセージを表示します。メッセージの内容は変更できます。

      既定値は無効です。

    4. [処理の種類]がインポートの場合には、本コマンドの後に[リストビューの操作]コマンドを設定し、「リストビューの更新確定」によりデータベースへのインポートデータの反映を行います。

    5. 実行してボタンをクリックします。

      3で設定した内容でインポートやエクスポートが行われることを確認できます。

      参考:

      • IDフィールドは各テーブルに自動的に作成され、レコードが書き込まれるタイミングで一意の連番が自動的に振られます。このためIDの値をインポートして画面に表示しても、実際にレコードが書き換わるタイミングで一意の番号が自動的に降られます。

      • ここでのインポートはリストビューの表示上のみにインポートされているだけであって、実際のテーブルにはまだ書き込まれていません。テーブルに書き込むには、以下の図のようにリストビューの更新処理を許可するようにチェックしておく必要があります。こうすることで、フォーカス行の移動によってレコードが確定したタイミングや、[リストビューの操作]コマンドで「リストビューの更新確定」を行うことで書き込みできます。

      • リストビューにページング機能がある場合、リストビューのデータをCSVにエクスポートすると、表示されているページのデータのみがエクスポートされます。

      • 「ロードオンデマンド」がオンの場合、リストビューに読み込まれたレコード数分の行だけがCSVファイルにエクスポートされます。

      • リストビューにコンボボックスのセル型があり、コンボボックスの項目の検証が必要な場合は、インポート時にデータの検証が行われます。不正な値の場合にエラーメッセージが表示されます。不正な値や無効な値の場合、インポートされたすべてのデータがロールバックされます。

      • インポートするCSVファイルの最後に空の行があってもインポートされません。

      注意:

      以下のようなコマンドを作成した場合、インポートダイアログが表示されない、コマンドが実行されないなど、正常に動作しない可能性があります。
      • インポート処理の前に時間のかかるコマンドを設定する。
      • インポート処理を2回行うようなコマンドを設定する。

      これはWebブラウザー側の仕様による制限です。そのコマンド群を実行する起点となったユーザー操作からおよそ10秒以上の時間が経過している場合に発生します。