見出し画像

noteの表をGoogleスプレッドシートから作る方法

noteには表を作る機能がありません。
この記事ではこんな表をgoogleスプレッドシートから簡単に作る方法をお伝えします

$$
\begin{array}{|c|c|c|}\hline
順位 & 都道府県 & 人口 \\ \hline
1 & 東京都 & 14192184 \\ \hline
2 & 神奈川県 & 9223695 \\ \hline
3 & 大阪府 & 8770315 \\ \hline
4 & 愛知県 & 7465250 \\ \hline
5 & 埼玉県 & 7329258 \\ \hline
\end{array}
$$

Googleスプレッドシートとマクロの実行

Googleアカウントが必要です。
マクロ(通称GAS)の使い方が分かる方は、適当に読み飛ばしていただいて構いません。

スプレッドシートを新規作成します。

Chromeでgoogleアカウントにログインします。
スプレッドシートを呼び出します。
拡張機能からApps Scriptを選ぶ

次のコードをコピペしてください。

function convertToKaTeXWithBorders() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var range = sheet.getActiveRange();
  var values = range.getValues();
  var result = '\\begin{array}{|' + 'c|'.repeat(values[0].length) + '}\\hline\n';

  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      var cellValue = values[i][j];
      if (typeof cellValue === 'string') {
        // 予約文字を二重に重ねる
        cellValue = cellValue.replace(/([&%$#_{}~^\\])/g, '\\$1\\$1');
      } else {
        cellValue = String(cellValue);
      }
      result += cellValue;
      if (j < values[i].length - 1) {
        result += ' & ';
      }
    }
    result += ' \\\\ \\hline\n';
  }

  result += '\\end{array}';

  // 結果を表示
  Logger.log(result);
  SpreadsheetApp.getUi().alert(result);
}
変更を保存します
スプレッドシートに戻って、マクロを登録します
マクロの関数を追加します

スプレッドシートで表を作成します。
表を選択してマクロを呼び出します。

表を選択して先ほど登録したマクロを実行します

最初の1回だけ承認を求められるので、承認します

このようなポップアップが出れば成功です
これを選択してコピーします。

noteに貼り付け

noteの記事を普通に作成します。
先頭と最後に$$をつけて先ほどコピーした内容を貼り付けます。

このようになれば成功です。

$$
\begin{array}{|c|c|c|}\hline
順位 & 都道府県 & 人口 \\ \hline
1 & 東京都 & 14192184 \\ \hline
2 & 神奈川県 & 9223695 \\ \hline
3 & 大阪府 & 8770315 \\ \hline
4 & 愛知県 & 7465250 \\ \hline
5 & 埼玉県 & 7329258 \\ \hline
\end{array}
$$

以上となります
バグや機能改良の要望があればコメント欄からご連絡ください。


以下広告
この記事を見ているのはnoteのクリエイターかと思います。
私が読んだ書籍の中から役にたったと思うものを紹介します。


いいなと思ったら応援しよう!

この記事が参加している募集