1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

jsPsych の実験結果を Excel で一発表示する(CSV ファイルを BOM付きで出力する方法)

Last updated at Posted at 2025-08-23

問題

jsPsych で実験したデータ(CSV形式で保存)を、Excel で読み込むと日本語がばけばけで読めない。

原因や対処方法

以前に書いた記事ですが、結論としてはBOM付UTFとして保存し直すか、Excel から UTF-8 を指定して読み込みます。
https://qiita.com/temochiz/items/87a02582631246c529dc

そこで今回の話題

Chat-GPT4(以下、チャッピー) が出た頃から、jsPsych でプログラムを書くときに、ちょくちょく尋ねていたのですが、当初は Ver.6 までした対応していなかったのが、いつの間にか(たぶん)最新バージョンまでサポートしていました。
そこで、そろそろ教えてもらえるんじゃないかと思ってチャッピーに聞いてみました。
「jsPsych で、BOM 付 UTF で保存したい」

と、いうことで、生成してもらったのが以下のコードです。

いつもお約束の initJsPsych で CSV 形式の filename で保存したいときは、こんなコードで書いていますが、

var jsPsych = initJsPsych({
  on_finish: function () {
    jsPsych.data.get().localSave('csv', filename);
  }
});

on_finish で、データの先頭に BOM(byte order mark) を入れておきます。

var jsPsych = initJsPsych({
  on_finish: function () {
    const csv = jsPsych.data.get().csv();
    const BOM = '\uFEFF'; // UTF-8 BOM
    const csvWithBOM = BOM + csv;

    const blob = new Blob([csvWithBOM], { type: 'text/csv;charset=utf-8;' });
    const link = document.createElement("a");
    link.href = URL.createObjectURL(blob);
    link.download = filename;
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
  }
});

動作確認

スクリーンショット 2025-08-24 024823.png

できあがったファイルをクリックしてみます。

スクリーンショット 2025-08-24 024645.png

できてる! 毎度のめんどくさい一手間がなくなってスッキリ。
ありがとう、チャッピー!

余談ですが、jsPsych はいつの間にか メジャーバージョンが8になっていて、そのままチャッピーに聞いてもバージョン混在で思ったように答えてくれません。 結局、カスタムGPTで、jsPsych 本体、CSS、プラグインを読み込ませておいて質問する方法で落ち着きました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?