↓ メインコンテンツへスキップ
  1. 🏃 Usage/

設定ファイル

·175 文字

設定ファイルは、各シートのどの行がどの学生を表しているかを書いたファイルです。 mosty init が書き出し、mosty check が読み込みます。利用者が直接書き直しても構いません。


📁 ファイル名
#

既定では、Excel ファイルと同じディレクトリの mosty.<Excel ファイル名>.json5 です。

Excel ファイル設定ファイル
grades.xlsxmosty.grades.xlsx.json5
grades.xlsmmosty.grades.xlsm.json5

先頭を mosty. にしているのは、シェルで Excel ファイル名を補完するときに、設定ファイルが候補に混ざらないようにするためです。


📝 書式
#

JSON5 で書きます。JSON5 は JSON を拡張したもので、コメント(//、/* */)、末尾のカンマ、クォートなしのキーが使えます。普通の JSON で書いても構いません。

{
  id_pattern: "^[0-9]{7}$",
  sheets: {
    "名簿": {
      id_column: 0,     // A 列
      name_column: 1,   // B 列
      start_row: 1,     // Excel の 2 行目
      end_row: 120,     // Excel の 121 行目
    },
    "最終成績": {
      id_column: 1,     // B 列
      name_column: 0,   // A 列(氏名が学生証番号の左にある)
      start_row: 3,
      end_row: 122,
    },
    "配点": { skip: true },
  },
}

行と列の番号は 0 始まり です。列の 0 が A 列、行の 0 が Excel の 1 行目です。


🔑 項目
#

キー型既定値意味
id_pattern文字列"^[0-9]{7}$"学生証番号の正規表現(Excel ファイルの前提)。
sheetsオブジェクト(必須)シート名をキーに、シートごとの設定を書きます。
sheets.<シート名>.id_column0 以上の整数(必須)学生証番号の列。
sheets.<シート名>.name_column0 以上の整数、または nullnull氏名の列。検証結果の表示にだけ使います。
sheets.<シート名>.start_row0 以上の整数(必須)学生の範囲の最初の行。
sheets.<シート名>.end_row0 以上の整数(必須)学生の範囲の最後の行(この行を含む)。
sheets.<シート名>.skip真偽値falsetrue なら学生のシートではないものとして、検証の対象から外します。ほかのキーは不要です。

⚠️ 注意
#

  • 正規表現のバックスラッシュは、JSON5 の文字列でも重ねて書く必要があります。例えば ^\d{7}$ は "^\\d{7}$" と書きます。
  • 次の場合はエラーになります(終了ステータス 2)。
    • 知らないキーがある(書き間違いを見逃さないため)。
    • 必須のキーがない。
    • start_row が end_row より大きい。
    • JSON5 として正しくない。
  • Excel ファイルにあるシートを設定ファイルから消すと、mosty check で「設定ファイルにないシート」として報告されます。検証しないシートは、消さずに skip: true にしてください。