1. ホーム
  2. javascript

[解決済み] 列のインデックスを対応する列の文字に変換する

2022-11-18 05:27:04

質問

私は、Googleスプレッドシートの列インデックスを、例えば、スプレッドシートが与えられた場合、その対応する文字の値に変換する必要があります。

これをする必要があります(この関数は当然存在しません、例です)。

getColumnLetterByIndex(4);  // this should return "D"
getColumnLetterByIndex(1);  // this should return "A"
getColumnLetterByIndex(6);  // this should return "F"

さて、インデックスが 0 から始まるのか、それとも 1 といった具合に、とにかくコンセプトは明確であるべきです。

ガスのドキュメントにはこれに関する記述はありませんでしたが、私の目が悪いのでしょうか?何か思い当たることはありますか?

ありがとうございます。

どのように解決するのですか?

少し前にいろいろな目的で書いたものです(列番号 > 26 の列の名前を2文字で返します)。

function columnToLetter(column)
{
  var temp, letter = '';
  while (column > 0)
  {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
  }
  return letter;
}

function letterToColumn(letter)
{
  var column = 0, length = letter.length;
  for (var i = 0; i < length; i++)
  {
    column += (letter.charCodeAt(i) - 64) * Math.pow(26, length - i - 1);
  }
  return column;
}