Forguncy 10 オンラインヘルプ
アプリの開発 / ロジックの実装 / コマンド / コマンド(通常) / CSVインポート/エクスポート
このトピックで
    CSVインポート/エクスポート
    このトピックで

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

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

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

    ダウンロードリンク

    ※利用しているバージョンによって対応するプラグインが異なります。以下より該当するバージョンをお選びください。

    Forguncy Builder / Forguncy Serverのバージョン プラグイン

    10.0.10.0以降の10.x.x.x

    ImportExportCSV_10_0_10_0.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データの値に含める場合、2回連続で[文字列の引用符]を記入することで含めることができます。(例:文字列の引用符が「"」の場合、「""」と記入すると「"」と出力されます。

      ファイル名

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

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

      フイルの拡張子

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

      列の関連付け定義

      列の関連付け定義を追加

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

      列の関連付け定義を削除

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

      1つ上へ移動

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

      1つ下へ移動

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

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

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

      CSVのヘッダー名

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

      一意となる列

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

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

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

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

      既定値は無効です。

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

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

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

      参考:

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

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

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

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

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

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

      注意:

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

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