KotlinでPOIを使ったプログラミングをしているのですが、その中でセルの座標(x=5、y=4)からセルのラベル(座標は0から開始のためこの場合F3)に変換する効率的なアルゴリズムがないかを知りたいです。

26進法で考えていますが、A〜Zまで来た次がAAのため簡単にできないと思っています。

以下、テストで作成し正しく動くものはできてはいます。ただ、直感的にわかりやすいプログラムではないため、もう少しわかりやすいものができないかと試行錯誤しています。

@JvmStatic
fun cellIndexToCellName(x: Int, y: Int): String {
    var cellName = ""
    var threshold = 26
    var tempX = x
    var loop = 0 // ループの2回目以降は値から1を引く
    while (true) {
        val mod26 = tempX % threshold
        cellName =  (mod26 + 65 - loop).toChar() + cellName
        if (tempX < threshold) {
            break
        }
        tempX = tempX / threshold
        if (loop == 0) {
            loop += 1
        }
   }
   return cellName + (y + 1)
}

Kotlinで書いていますが、Java、C、C#等の言語でも構いません。