ExcelやCSVから予実のデータをインポートする

160-01 | オペレーション 基本編

業務データが蓄積されたExcelファイルやCSVファイルのデータを手作業で移行するのは大変な手間がかかります。そこで活躍するのがForguncyのデータインポート機能です。
Forguncyでは、ExcelファイルやCSVファイルを読み込んで、そのデータをもとにテーブルを生成することができます。
ここでは、ExcelファイルとCSVファイルを使って予算テーブルと実績テーブルを作成し、それぞれの一覧表示を行う画面の作り方について解説します。

プロジェクトファイル O160-01_import-data_b.fgcp
O160-01_import-data_a.fgcp(実装済みプロジェクトファイル)
データ元ファイル予算管理データ.xlsx
実績管理データ.csv

ここで作成する一覧表には、「リストビュー」というUIパーツを使用します。リストビューについては開発スタートガイドにも記事がありますので、詳細についてはそちらもご参照ください。

・開発スタートガイド – Forguncyのリストビューを使いこなす

プロジェクトを確認する

プロジェクトを開き、テーブルの確認をします。
ナビゲーションウィンドウのテーブルの欄には、既に「組織マスタ」と「科目マスタ」が存在しています。各ファイルからテーブルの作成が完了すると、ここに表示されるようになります。
また、プロジェクトには3つのページが既に作成されています。
「予実管理メニュー」ページはプロジェクトをデバッグ実行した際、初めに表示されるページです。
「予算表」ページと「実績表」ページには、現段階ではページタイトルだけが書かれている状態です。

Excelからテーブルを作成

ダウンロードしたExcelファイル「予算管理データ.xlsx」を開きます。
A列の「組織コード」からO列の「科目」まで、データが入っていることを確認し、ファイルを閉じます。
プロジェクトに戻り、[データ]タブの[インポート]から[Excelからテーブル]をクリックします。
「外部データの取り込み – Excelファイル」ウィンドウが開くので、データの確認を行ったExcelファイル「予算管理データ.xlsx」を選択します。
その下の項目は「現在のデータベースの新しいテーブルにソースデータをインポートする」がチェックされていることを確認し、「OK」ボタンを押下します。

外部データの取り込みウィンドウが閉じると「Excelファイル インポート ウィザード」ウィンドウが開きます。

Excelからデータをインポートする場合、どのシートのどの範囲を取り込むかを指定する必要があります。今回使用するファイルではシートが1つだけで、シート内のデータ全てを取り込みます。
「現在表示されているシートをインポート」にチェックされていることを確認し、「次へ」を押下します。

インポート時、Excelの先頭行の値をテーブルのフィールド名(列名)として使用することができます。今回はその設定を利用するため、「先頭行をフィールド名として使う」にチェックを入れ「次へ」を押下します。

インポートする項目のデータ型の指定を行います。
今回はすべてのフィールドに対して「整数」型を設定します。
データ型の変更は、変更したい列に属するセルを選択した状態で「データ型」コンボボックスから行います。「組織コード」列から「科目」列まで、すべて整数型に設定し終えたら「次へ」を押下します。

テーブルの名前を設定します。
「インポート先のテーブル」欄に「予算管理」と入力し、「完了」ボタンを押下します。

ナビゲーションウィンドウのテーブル欄に「予算管理」テーブルが追加されます。
テーブルを開くと、データを確認できます。この時、Excelの段階では存在していない「ID」フィールドが追加されています。これはForguncyが自動で生成したもので、主キーの役割を担うものです。

CSVからテーブルを作成

ダウンロードしたCSVファイル「実績管理データ.csv」を開きます。
「年度」から「科目」まで、8項目のデータが入っていることを確認し、ファイルを閉じます。
プロジェクトに戻り、[データ]タブの[インポート]から[テキストファイルからテーブル]をクリックします。
「外部データの取り込み – テキストファイル」ウィンドウが開くので、データの確認を行ったCSVファイル「実績管理データ.csv」を選択します。
その下の項目は「現在のデータベースの新しいテーブルにソースデータをインポートする」がチェックされていることを確認し、「OK」ボタンを押下します。

外部データの取り込みウィンドウが閉じると「テキストファイル インポート ウィザード」ウィンドウが開きます。
CSVファイル内のデータがExcel形式で表示されるので、取込範囲を選択します。
今回はシート内のデータ全てを取り込むため、「現在表示されているシートをインポート」にチェックされていることを確認し、「次へ」を押下します。

Excelファイルの時と同様に、先頭行の値をテーブルのフィールド名(列名)として使用することができます。
今回もその設定を利用するため、「先頭行をフィールド名として使う」にチェックを入れ「次へ」を押下します。

インポートする項目のデータ型の指定を行います。
今回はそれぞれのフィールドに合った型を設定するため、以下のように設定を行います。

  • 年度:整数
  • 組織コード:整数
  • 事業部:テキスト
  • 部:テキスト
  • 課:テキスト
  • 日付:日付/時刻
  • 金額:整数
  • 科目:整数

すべてのフィールドの設定を終えたら「次へ」を押下します。

テーブルの名前を設定します。「インポート先のテーブル」欄に「実績管理」と入力し、「完了」ボタンを押下します。

ナビゲーションウィンドウのテーブル欄に「実績管理」テーブルが追加されます。
テーブルを開くと、データを確認できます。

予算データの一覧表示画面を作る

「予算表」ページを開きます。前述のコンボボックスやボタンの下の空欄セルに、予算データを一覧表示する表を作成します。
任意のセル範囲を選択した状態で、ナビゲーションウィンドウから「予算管理」テーブルを選択したセル範囲内にドラッグ&ドロップすると、「予算管理」テーブルとデータ連結されたリストビューが生成されます。
このリストビュー内にナビゲーションウィンドウから「予算管理」テーブルの各フィールドをドラッグ&ドロップすることで、データを一覧表示することができます。

しかし、そのままだと組織や科目に関する情報は組織コード、科目コードといった形でしか表示することができず、不便な表となってしまいます。
そのため、コードを元にそれぞれの組織の名称や科目の名称を表示できるよう「テーブルの関連付け」を行います。

ナビゲーションウィンドウの「予算管理」テーブルを展開します。
フィールド「組織コード」を右クリックし、「テーブルの関連付けを設定」をクリックします。
「参照するフィールドの設定」ウィンドウが開くので、「組織マスタ」を選択します。
「対象フィールド」欄には組織マスタが持つフィールドが表示されるので、「組織コード」を指定します。
これで、「予算管理」テーブルは「組織マスタ」と結合され、組織マスタ側で持っている事業部や部、課といったデータを参照することができます。

同様に、「予算管理」テーブルの「科目」フィールドにもテーブルの関連付けを設定します。
この時は対象テーブルを「科目マスタ」、「対象フィールド」は「科目コード」を設定します。

「予算表」ページに戻り、各項目をリストビュー内に配置していきます。
配置するフィールドの種類や列の位置などは自由に設定して構いません。例として以下にサンプルプロジェクトでの設定を示します(~で繋いだセル範囲は結合しています)。

  • B6~H6セル:組織コード->事業部
  • I6~M6セル:組織コード->部
  • N6~Q6セル:組織コード->課
  • R6~V6セル:科目->大科目
  • W6~AA6セル:科目->中科目
  • AB6~AF6セル:_4月
  • AG6~AK6セル:_5月
  • AL6~AP6セル:_6月
  • AQ6~AU6セル:_7月
  • AV6~AZ6セル:_8月
  • BA6~BE6セル:_9月
  • BF6~BJ6セル:_10月
  • BK6~BO6セル:_11月
  • BP6~BT6セル:_12月
  • BU6~BY6セル:_1月
  • BZ6~CD6セル:_2月
  • CE6~CI6セル:_3月

また、「_4月」~「_3月」までの項目を配置したセルは、書式を変更して金額を見やすく設定します。セルの書式設定を行うには、セルを選択した状態で右クリックし「セルの書式設定」をクリックします。今回は「通貨」の分類に設定をしています。

リストビューに項目を配置すると、データがプレビュー表示されます。
今回は事業部や部、課、大科目といった項目で数行に渡り同じ値が表示されています。
このままだと見づらいため、「セルの自動結合」を行います。

リストビュー内の「事業部」列を選択した状態で、リボンの [デザイン]>[列設定]の中の「セルの自動結合」にチェックを入れます。
すると、同じ値が続く行を自動で結合して表示するようになります。

同様に「部」「課」「大科目」の列でもセルの自動結合の設定を行います。

実績データの一覧表示画面を作る

「実績表」ページを開きます。
予算表ページと同様に、実績データを一覧表示する表を作成します。
任意のセル範囲を選択した状態で、ナビゲーションウィンドウから「実績管理」テーブルを選択したセル範囲内にドラッグ&ドロップします。

選択された範囲に「実績管理」テーブルとデータ連結されたリストビューが生成されます。

予算表の時と同様、このリストビュー内に「実績管理」テーブルの各フィールドをドラッグ&ドロップすることでデータを一覧表示することができますが、先に実績管理テーブルと科目マスタの関連付け設定を行います。

ナビゲーションウィンドウから「実績管理」テーブルのフィールド「科目」を右クリックし、「テーブルの関連付けを設定」をクリックします。
「参照するフィールドの設定」ウィンドウが開くので、「科目マスタ」を選択し「科目コード」を指定し関連付けを設定します。

「実績表」ページに戻り、各項目をリストビュー内に配置していきます。
配置するフィールドの種類や列の位置などは自由に設定して構いません。例として以下にサンプルプロジェクトでの設定を示します(~で繋いだセル範囲は結合しています)。

  • B6~I6セル:事業部
  • J6~O6セル:部
  • P6~T6セル:課
  • U6~Y6セル:科目->大科目
  • Z6~AD6セル:科目->中科目
  • AE6~AJ6セル:金額
  • AK6~AP6セル:日付

配置後、見栄えを良くするための設定を行います。
「金額」の項目は「分類:通貨」、「日付」の項目は「分類:日付」に変更します。
「事業部」「部」「課」「大科目」の列にはセルの自動結合にチェックを入れて、同じ値が複数行に渡って続く場合は自動で結合表示するよう設定を行います。

結果を確認

プロジェクトをデバッグ実行し動作を確認します。
デバッグ実行すると「予実管理メニュー」ページが表示されます。
ハイパーリンクの「予算表」「実績表」をクリックすると、それぞれの一覧表が表示されるページが別タブで開きます。

>ノーコードWebアプリ開発ツール「Forguncy」

ノーコードWebアプリ開発ツール「Forguncy」

Forguncy(フォーガンシー)は複数のシステムと直接接続して参照・更新が行えるデータ管理機能と、Excel感覚でレイアウトができる画面デザイン機能を備えたノーコードWeb開発&運用プラットフォームです。基幹システムでは対応できず、仕方なくExcelやAccessで管理していた業務のサブシステム化を強力に支援します。

CTR IMG