Jspreadsheet CEでヘッダーをホバー時にTooltipを表示する

published@2025-12-24

はじめに

Streamlitのdataframeエレメントにある、スプレッドシートのヘッダー部分をマウスホバーしたらhelpメッセージをTooltipで表示できる機能をJspreadsheetでも使いた~~い!

公式ドキュメントのHeadersページにそれっぽい設定項目(Initial Settingsのtooltip)あるけど動かない!

というかこの記述は誤記っぽそう
昔のバージョンでは存在してたのかな?

結局ないなら自分で用意するしかないか~~

作ってみた

まずはサンプル

https://stackblitz.com/edit/8iclqdmn?file=index.html

jspreadsheet(document.getElementById('spreadsheet'), {
  worksheets: [
    {
      minDimensions: [3, 3],
    },
  ],
  onload(instance) {
    const root = instance.el;
    const headers = root.querySelectorAll('.jss_worksheet > thead td');
    headers.forEach((td, idx) => {
      td.setAttribute('title', `${idx}番目のカラム`);
    });
  },
});

Jspreadsheetはcolumnのtitleの値を、出力されるHTMLのテーブルヘッダー内のtdタグにも<td title="タイトル">A</td>というように設定してくれています。

そして、HTMLにおいてこのtitle属性は、いわゆるツールチップのような動きをしてくれます。

これを上手く利用して簡単に実現できました!

スタイルをいじりたい場合

td.setAttribute('title', help)の代わりに独自の属性を設定し、その独自の属性に対してCSSを書けば実現可能です。

スポンサーリンク