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

Excel ファイルの前提

·130 文字

mosty は、次のような構造の Excel ファイル(.xlsx、.xlsm)を想定しています。


📄 シートの構造
#

  • 1 つのファイルに、複数のシートがある。
  • 各シートは 1 行が 1 人の学生 を表す表になっている。
  • 各行の先頭の数列(既定では A〜C 列)に、学生証番号 と 氏名 がある。
    • どちらが左でも構いません。
  • 表の上に、タイトルや見出しの行があっても構いません。
  • 表の途中に、空行、小見出しの行、集計の行があっても構いません。学生証番号のない行は、学生の行として扱いません。
  • 表が A1 から始まっていなくても構いません。

例:

ABCDE
1課題の成績
2
3学生証番号氏名課題1課題2合計
41234001京都 太郎89=SUM(C4:D4)
51234002京産 花子108=SUM(C5:D5)

配点表やメモのように、学生の行を持たないシートがあっても構いません。そのようなシートは検証の対象外になります。


🔗 シートをまたいだ参照
#

最終成績などのシートが、ほかのシートのセルを数式で参照していることを想定しています。

ABCD
1学生証番号氏名課題試験
2=名簿!A2=名簿!B2=課題!E4*配点!$B$2/20=試験!C2*配点!$B$3/100

mosty は、参照元の行(最終成績の 2 行目)と、参照先の行(課題の 4 行目)の学生証番号を比べます。


🔢 学生証番号の書き方
#

学生証番号は、既定では 7 桁の数字 とします。次の書き方はどれも同じ学生として扱います。

  • 数値のセル(1234001)
  • 文字列のセル("1234001")
  • 前後に空白(全角空白を含む)がある文字列のセル(" 1234001 ")

先頭に英字が付いた学生証番号("g1234001" など)を使っている場合は、--id-pattern で正規表現を指定してください。

mosty init --id-pattern '^[A-Za-z]*(?<id>[0-9]{7})$' grades.xlsx
  • 正規表現は、常にセル全体と比べます(^ と $ を省略しても同じです)。
  • 名前付きグループ id を書くと、その部分だけで学生を比べます。上の例では、1234001 と "g1234001" を同じ学生として扱います。
  • 正規表現の書き方は、Rust の regex に従います。

🧮 学生証番号が数式の場合
#

学生証番号のセルが、名簿のシートを参照する数式(=名簿!A2 など)でも構いません。 mosty は、Excel が保存した計算結果を学生証番号として使います。

Excel 以外のツールで作ったファイルなど、計算結果が保存されていない場合は、単純な参照(=名簿!A2 の形)であれば参照先をたどって学生証番号を求めます(最大 10 段)。 それ以外の数式で計算結果がない場合は警告が出るので、Excel で開いて保存し直してください。