設定ファイルは、各シートのどの行がどの学生を表しているかを書いたファイルです。
mosty init が書き出し、mosty check が読み込みます。利用者が直接書き直しても構いません。
📁 ファイル名#
既定では、Excel ファイルと同じディレクトリの mosty.<Excel ファイル名>.json5 です。
| Excel ファイル | 設定ファイル |
|---|---|
grades.xlsx | mosty.grades.xlsx.json5 |
grades.xlsm | mosty.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_column | 0 以上の整数 | (必須) | 学生証番号の列。 |
sheets.<シート名>.name_column | 0 以上の整数、または null | null | 氏名の列。検証結果の表示にだけ使います。 |
sheets.<シート名>.start_row | 0 以上の整数 | (必須) | 学生の範囲の最初の行。 |
sheets.<シート名>.end_row | 0 以上の整数 | (必須) | 学生の範囲の最後の行(この行を含む)。 |
sheets.<シート名>.skip | 真偽値 | false | true なら学生のシートではないものとして、検証の対象から外します。ほかのキーは不要です。 |
⚠️ 注意#
- 正規表現のバックスラッシュは、JSON5 の文字列でも重ねて書く必要があります。例えば
^\d{7}$は"^\\d{7}$"と書きます。 - 次の場合はエラーになります(終了ステータス 2)。
- 知らないキーがある(書き間違いを見逃さないため)。
- 必須のキーがない。
start_rowがend_rowより大きい。- JSON5 として正しくない。
- Excel ファイルにあるシートを設定ファイルから消すと、
mosty checkで「設定ファイルにないシート」として報告されます。検証しないシートは、消さずにskip: trueにしてください。