JSFIDDLE を26列以上でもちゃんと列番号を表示させようと思った
var letter = String.fromCharCode("A".charCodeAt(0)+j-1);
を
<pre style="padding-left: 30px;">var letter = makeColName(j);</pre>
に変えた後が結構面倒だった。
function makeColName(col) { if(col-- <=0) return ""; var digit = "Z".charCodeAt(0) - "A".charCodeAt(0) + 1; return makeColName(Math.floor(col/(digit))) + String.fromCharCode("A".charCodeAt(0)+(col % digit)); }
ストレートに表記文字を ”ABCDEFGHIJKLMNOPQRSTUVWXYZ” と並べて
function makeColName(col) { if(col-- <=0) return ""; if(typeof this.COLCHARS === 'undefined') { this.COLCHARS ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // いろんな文字で遊べる this.DIGIT = this.COLCHARS.length; } return makeColName(Math.floor(col/(this.DIGIT))) + this.COLCHARS.charAt(col % this.DIGIT); }
すれば「あいうえお」でも「壱弐参肆伍陸質捌玖零」もあり?
A1のAの部分は【基数が1の26進数表記】なので、
単純に剰余を求めると、0が出てきてしまうから、
まず列番号の基数を0に変え、各桁ごとにAの部分を作成して、次の桁の処理に移る。
だから
function makeColName(col) { var rc=""; while(true) { if(col-- ==0) return rc; var digit = "Z".charCodeAt(0) - "A".charCodeAt(0) + 1; rc = String.fromCharCode("A".charCodeAt(0)+(col % digit)) + rc; col = Math.floor(col/(digit)); } }
でもいいはず。
見づらいのでSyntaxHighlighter Evolvedを入れようと思ったら、結構量もあるし、ヘッダーのPHPソースも盛らないといけないので、プラグインを入れてみた。
行の色が交互に変わらないので
wp-content / plugins / syntaxhighlighter3 / ${設定で選択したテーマ名}.css を
.syntaxhighlighter .line.alt1 { background-color: #33FFFF !important; }
と変えてみた。
参考
makeColName(1) -> “A”
makeColName(2)-> “B”
makeColName(26) -> “Z”
makeColName(27) -> “AA”
今更、EXCELのワークシートのサイズが1,048,576行×16,384列まで増えていた(Excel2007以降のxlsxファイル)のに気が付いた。