2022.07.08

DataSpiderをデータ連携以外にも活用する~Excel共有編~

DataSpiderについて

 DataSpiderはシステム間のデータ連携ソフトウェアであり、豊富なアプリケーションアダプタを備えており、各種DBだけでなくExcelファイルの取り込みや外部のWebAPI利用も可能となっています。
※WebAPI利用などは、一部有料サービスになります。

 本記事では、Excel読取/書込アダプタを活用して作成した、DataSpiderを用いた業務支援を行うツール(以下、業務支援ツールと記載)を紹介します。

想定する業務シーン

 プロジェクト運用などで、Excelに作業の一覧を書き起こし、各作業を「誰に」「何時間」で行うかを記載した予定表を管理することを考えます(図1)。
プロジェクトリーダーは、予定表を基に日々の管理をするために、各作業員に実施した日時や作業にかかった時間を記入していくように依頼します(図1中の開始日、作業時間列)。

予定表

上記のように複数人が編集するExcel運用を考えた場合、下記のような問題が発生します。
 ■誰かがExcelファイルを開いていると、他の作業者がExcelを編集することができない
 ■Excelファイルの共有機能を利用すると、シートの追加やピボットテーブルの編集ができない
  ※編集する際には、都度共有の解除作業が必要になる。
最近ではスプレッドシートでの共同編集が可能ですが、ピボットテーブルでの複雑な集計や分析作業を考えると、Excelの方が望ましいケースもあります。

業務支援ツールの概要

前準備として、作業者ごとに予定表をコピーして、作業者用のファイルを用意します。
※各作業者は自分のExcelファイルに開始日や作業時間を入力する。
ツールが1時間ごとに各作業者のファイルの内容を収集し、リーダー用のExcelファイルに自動で各作業者の時間などを転記します(下図参照)。
リーダーは自身のExcelファイルでピボットテーブルによる集計や進捗確認を行うことができます。

業務支援ツールの仕組み解説

業務支援ツールの中身をDataSpiderStudioで表示したものが下記のフロー図です。処理は大きく3つの部分で作っています。

①作業者用Excelファイルの取得
 各作業者用の予定表を保管しているフォルダを対象にExcelファイルの一覧を取得します。
 その後、取得したファイルに対して以降の処理を繰り返すため、forループを置いています。
 ただ、一覧取得では指定フォルダに保管されている全ファイルを取得してしまいますので、
 今回のツールで対象となるファイルだけを処理②で選別します。

②予定表以外のファイルは処理をSKIP
 作業者用フォルダの中に適当な画像や別のExcelファイルなどが置かれている場合、それらは対象外として
 処理を行わないようにif分岐でSKIPさせます。
 また、作業者が予定表を編集中にツールを動かすと途中の内容を収集してしまうため、編集中の予定表も対象外とします。
 (Excelで編集している場合、頭に「~$」がついたファイルが作成されるため、そのファイルが存在する場合は対象外とします)

編集中の予定表(分岐1)と関係の無いファイル(分岐2)の場合は「Continue」で後続の処理を行わずに次のforループに進むようにしています。
関係の無いファイルとして、「予定表と名前についていないファイル」や「Excel以外のファイル」などに加えて、分岐1で考慮した一時ファイル自体を取込対象としてしまっている場合についてチェックしています。

③リーダー用のExcelへの転記
 取込対象の予定表(予定表_A.xlsxや予定表_B.xlsx)から転記対象となる開始日などの情報を取得し、リーダー用のExcelへ書き込みを行います。

まず、ファイルの名前からどの作業者のデータであるかを特定し、変数に作業者の名前をセットしておきます。
※実際の動きとしては、ファイルパスを含めたファイル名(C:/DataSpiderServista/server/data/作業者用フォルダ/予定表_A.xlsx)を基に下記の変換を順番に行っています。
 1.パス部分を除去(「C:/~作業者用フォルダ/」までを「」に置換) → 変換後:『予定表_A.xlsx』
 2.拡張子の除去(「.xlsx」の前部分を取得) → 『予定表_A』
 3.担当名より前を除去(「予定表_」を「」に置換) → 『A』

変数にセットした作業者名と予定表の「担当者名」列の値を比較し、一致する行だけを対象とし、必要な情報(開始日や進捗率)を出力へ繋げます。

出力された各行の情報を、リーダー用のExcelへ書き込みます。

業務支援ツールの自動実行処理
上記の処理を実行すると、作業者A/Bの予定表からリーダーの予定表に内容が転記されます。
後はDataSpiderのスケジュールトリガーで1時間毎に実行することで、自動的に最新の情報をリーダーの予定表で確認することができるようになります。

紹介した仕組みは最低限の機能となりますので、色々処理を追加すればさらに使いやすいものにできます。
例えば、下記の機能などが考えられます。
 ・リーダーのExcelへ追記する前に、コピーを残しておくことで日ごとのファイルを残しておく。
 ・JDBCを利用し、外部のDBへ追記する内容を履歴として登録して残す。

業務支援ツールの注意事項

■ファイル名に作業者名を記載することで担当者を特定しているため、ファイル名と予定表の担当者の名前が一致する必要があります
■セル内の文字情報を転記するため、メモや図形、画像などの転記はできません。
■ツールで書き込む行以外を更新した場合は、各作業者とリーダーの予定表全てを更新する必要があります。
■備考の内容などで、セル中に改行を行った情報が含まれると転記されたリーダーのExcelでは改行されずに表示されます。
 ※全行を改行された形で表示するには、Excelで開いた後に後述する処理を実施することで変更可能
Excelの選択セルのセル内改行を有効にする方法
 セルを選択し、ホームメニューの「折り返して全体を表示する」を押す。

最後に

いかかだったでしたか。
DataSpiderに限らず、何かで利用しているものを他に活用して業務効率を上げるという取組は、新しいものを導入するより少ないコストで行えるため、おススメです。
(※利用規約などを確認し、禁止されていることには利用しないようにしましょう。)

今回紹介した業務支援ツールのDataSpiderプロジェクトを下記にサンプルとしてアップしていますので、参考にしてみてください。

DataSpiderによる業務支援ツール(予定表共有ツール)

予定表共有ツール.zip (43.7 KB)
39 件
     
  • banner
  • banner

関連する記事