/** * Created by Tony on 2017/4/5. */ var test = require('tape'); var headerStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; test('test private 1', function(t){ private_getCellIdxStr = function(idx, pre){ var rst = 'A', prefix = '', tmpIdx = idx; if (tmpIdx >= 26) { var ti = Math.floor(tmpIdx / 26), tj = tmpIdx % 26; if (ti <= 26) { rst = pre + headerStr[ti - 1] + headerStr[tj]; } else { //rst = private_getCellIdxStr2(ti, 'A' + pre) + headerStr[tj]; rst = private_getCellIdxStr2(ti, 'A' + pre) + headerStr[tj]; } } else { rst = pre + headerStr[tmpIdx % 26]; } return rst; }; private_getCellIdxStr2 = function(idx){ var rst = 'A'; if (idx < 26) { rst = headerStr[idx]; } else if (idx < 26*26+26) { var ti = Math.floor(idx / 26), tj = idx % 26; rst = headerStr[ti - 1] + headerStr[tj]; } else if (idx < 26*26*26+26) { var ti = Math.floor(idx / (26*26)), tj = Math.floor((idx - ti * 26*26) / 26), tk = idx % 26; rst = headerStr[ti - 1] + headerStr[tj-1] + headerStr[tk]; } return rst; }; t.equal(private_getCellIdxStr2(0, ''), 'A'); t.equal(private_getCellIdxStr2(20, ''), 'U'); t.equal(private_getCellIdxStr2(25, ''), 'Z'); t.equal(private_getCellIdxStr2(26, ''), 'AA'); t.equal(private_getCellIdxStr2(27, ''), 'AB'); t.equal(private_getCellIdxStr2(51, ''), 'AZ'); t.equal(private_getCellIdxStr2(52, ''), 'BA'); t.equal(private_getCellIdxStr2(77, ''), 'BZ'); t.equal(private_getCellIdxStr2(103, ''), 'CZ'); t.equal(private_getCellIdxStr2(675, ''), 'YZ'); t.equal(private_getCellIdxStr2(676, ''), 'ZA'); t.equal(private_getCellIdxStr2(701, ''), 'ZZ'); t.equal(private_getCellIdxStr2(702, ''), 'AAA'); t.equal(private_getCellIdxStr2(727, ''), 'AAZ'); t.equal(private_getCellIdxStr2(728, ''), 'ABA'); t.end(); })