memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

Google Classroomの課題提出状況CSVをUTF8からSJISに変換するクイックアクション

背景

ちょっと前に以下を作ってちょっとした喜びを感じていました。

スクショ画像を半分にするクイックアクションの作り方(mac) - memorandums

同じように日常的な作業としてGoogle Classroomに提出された課題の一覧表(アカウント名+提出 or 未提出)をダウンロードする、がありました。Classroomで採点すると時間がかかるので提出ファイルをダウンロードしてExcelに点数をつけるためです。ちなみにUIは以下なんですけどね。

このダウンロードしたファイルはUTF8なんです。なのでExcelで開くとこんな感じになります。あーあという感じです。

上の図の最右列が実は提出完了 or 未提出という文字が書かれているのですが読めませんよね〜。

なので、毎回、VS Codeを起動して、保存するときにSJISに変換する作業をしてきました。ちょっとした作業なんですがチリツモですからね。。。

今日、いつものようにこの作業をしていたときに、上記のクイックアクションの記事を思い出しました。文字コード変換くらいならクイックアクション作れるのでは?と思ったんです。

調べました。既にたくさんの人が作って公開されていました。

本エントリーは、二次・三次資料になってしまいますが、一応、自分の活動として記録しておきたいと思います。

既に成功した方の多くはnkfを使って作られています。でも、いちいちいれるのも面倒だしな。。。Apple Scriptとかでできないのかな?と思ったのです。

色々試した結果、macに入っているiconvを使うことにしました。ただ、皆さんも書いている通り、iconvは元ファイルに変換結果を上書きができないんですね。これはどうやっても逃げられません。しかたがなく中間ファイルを作るスクリプトにしました。

Automatorを起動して、クイックアクションを作成し、以下の赤丸のところを入力すれば完成です。ちなみにこれは~/Library/Servicesに格納されるようです。いらなければここから削除するなり変名するなりすればよいようです。

コードのところが画像では困ると思いますので以下に示します。

for f in "$@"
do
    iconv -f utf8 -t sjis "$f" > "$f".csv
    mv "$f".csv "$f"
done

便利だなぁ〜クイックアクション。

■2025/7/9 追記

このクイックアクションが動作しないときがあったのでちょっとみなしたという記事を書いています。

iconvを使うときには-cをつけた方がよい? - memorandums