本ツールは、WoS(Web of Science)で取得した英文論文情報を基に、病院別に整理された問い合わせシート(Googleスプレッドシート)を自動生成するGoogle Apps Script(GAS)プロジェクトです。
- JSON形式の論文情報を加工し、中間JSONファイルを生成
- 中間JSONファイルからGoogleスプレッドシートを出力(施設別に整理)
- 各種チェック関数により整合性検証(JSON⇔スプレッドシート)
- 病院施設情報のスプレッドシートのIDをスクリプトプロパティ
hospInfoFileId
に設定します。スプレッドシートの病院情報が格納されているシートの名称がBase
ではない場合、また、前年からレイアウトが変更になっている場合等はプログラムの修正が必要です。 - 入力用JSONファイルをGoogleDriveの任意のフォルダに格納します。
- 上記フォルダのIDを、スクリプトプロパティ
inputFolder
に設定します。 - 中間ファイルを格納するためのフォルダを作成し、そのIDをスクリプトプロパティ
intermediateFolder
に設定します。 - 出力スプレッドシートを格納するためのフォルダを作成し、そのIDをスクリプトプロパティ
outputFolderId
に設定します。
issue49.js
のoutputJson()
を実行します。- 中間JSONファイルが
intermediateFolder
フォルダに生成されます。 - 同時に、元のファイルはバックアップとしてサブフォルダに退避されます。
- 中間JSONファイルが
issue49.js
のoutputSs()
を実行します。outputFolderId
で指定されたフォルダに、yyyymmdd_HHmm_施設別英文論文リスト
というサブフォルダが生成され、施設単位でスプレッドシートが出力されます。- 処理中にエラーが発生した場合、コンソールに処理できなかったファイルのリストが出力されます。
issue49.js
のoutputSsByFileName()
のconst targetFileList =
にそのリストを設定してoutputSsByFileName()
を実行してください。直近のyyyymmdd_HHmm_施設別英文論文リスト
に対象のスプレッドシートが出力されます。
forCheck.js
のexecCheck()
を実行します。- → 全体チェック:中間JSON→スプレッドシートの整合性検証(ファイル数・WoS ID・値一致など)
開発・デバッグ用途で活用する補助関数です。通常のフローを個別に検証・確認する目的で利用します。
-
用途:
inputFolder
に格納された入力用 JSON ファイル(例:408.json
)を中間JSON形式に変換し、intermediateFolder
に保存します。- 本番処理
outputJson()
の簡易版で、common.js
のtestTargetJsonFileName
に一致する単一ファイルのみを対象とします。
-
主な処理内容:
common.js
のtestTargetJsonFileName
で指定されたファイルを取得getJson_()
を用いて中間JSON形式に変換- 変換後JSONを
intermediateFolder
に保存
-
利用場面:
- 特定の施設(1ファイル)の変換ロジックを検証したいとき
- 中間JSONの出力形式の妥当性確認
-
用途:
- 上記で生成された中間JSONを用いて、
- 単一施設(
common.js
のtestTargetJsonFileName
に指定)に対応するスプレッドシートを出力します。 - 本番処理
outputSs()
の限定的なテスト版です。
-
主な処理内容:
common.js
のtestTargetJsonFileName
に対応する中間JSONを取得outputSs()
関数を利用してスプレッドシートを生成- 出力先は
testFolderId
で指定されたフォルダ
-
利用場面:
- 1施設のみスプレッドシート出力テストを行いたいとき
- 書式・列順・ソートなどのレイアウト確認時
-
用途:
- JSONファイル(
testTargetJsonFileName
)内に記載されたWoS ID(UID)を抽出し、 - 検索用のクエリ文字列(
UT=xxx OR UT=yyy OR ...
)をコンソールに出力します。 - さらに、GUIから取得したExcelファイル(
savedrecs.xls
)を置くためのフォルダを自動生成します。
- JSONファイル(
-
主な処理内容:
inputFolder
からcommon.js
のtestTargetJsonFileName
に該当するJSONファイルを取得- 各レコードのUID(WoS ID)を抽出して
"UT=..."
形式に変換 - 検索用のクエリ文字列をコンソール出力
- 実行日時を名前とするサブフォルダを
testFolderId
の下に作成し、スクリプトプロパティtestTargetFolderId
に保存
-
利用場面:
- Web of Science で検索を行うためのクエリを自動生成したいとき
savedrecs.xls
を配置する一時フォルダを用意したいとき
-
用途:
- Web of Science GUIからダウンロードした
savedrecs.xls
(XLS形式)ファイルを、 - Googleスプレッドシート形式に変換します。
- Web of Science GUIからダウンロードした
-
主な処理内容:
testTargetFolderId
に指定されたフォルダ内のsavedrecs.xls
を取得convertXlsToSheet_()
を使ってスプレッドシートに変換(Drive API経由)- Googleドライブのルートフォルダにスプレッドシートとして保存
-
利用場面:
- WoS GUI から取得したExcelファイルをスクリプトで扱える形式(スプレッドシート)に変換したいとき
- データ比較や後続のチェック処理に備えた前処理として
- 用途:
- WoS GUIからダウンロードしたExcelファイル(
savedrecs.xls
)と、 スクリプトが出力したスプレッドシートとの内容を比較し、 両者のデータに差異がないかを検証します。
- WoS GUIからダウンロードしたExcelファイル(
プロパティ名 | 用途 |
---|---|
hospInfoFileId |
病院情報定義ファイルのスプレッドシートID |
inputFolder |
入力ファイル格納先フォルダID |
intermediateFolder |
中間ファイル格納先フォルダID |
outputFolderId |
スプレッドシート出力フォルダID |
プロパティ名 | 用途 |
---|---|
testTargetJsonFileName |
テスト対象のJSONファイル名(例: "408.json" ) |
testFolderId |
テスト出力ファイルを格納するフォルダのID(出力先) |
getHospOoAd_()
(getHospOoAd.js
)に以下の形式で施設定義を追加してください:
サンプル/Box/Datacenter/Users/ohtsuka/2025/20250415/getHospOoAd.js
{
OO: ["施設名(英略表記)", ...], // Organization(略称含む)
AD: ["住所中キーワード", ...], // Address
facilityNumber: 000 // 施設コード(3桁)
}
- spreadSheetBatchUpdate.gs(カスタムライブラリ)
https://github.com/nnh/spreadSheetBatchUpdate - Google Apps Script Advanced Services:(基本最新版でOK)
- Sheets API v4
- Drive API v3