index.js
function convertR1C1toA1 (ref) {
  if (!R1C1.test(ref)) {
    throw new Error(`${ref} is not a valid R1C1 cell reference`)
  }

  var refParts = ref
    .replace(R1C1, '$1,$2')
    .split(',')

  var row = refParts[0]
  var column = refParts[1]
  var columnStr = ''

  for (; column; column = Math.floor((column - 1) / 26)) {
    columnStr = String.fromCharCode(((column - 1) % 26) + 65) + columnStr
  }

  return columnStr + row
}
function convertR1C1toA1 (ref) {
  if (!R1C1.test(ref)) {
    throw new Error(`${ref} is not a valid R1C1 cell reference`)
  }

  var refParts = ref
    .replace(R1C1, '$1,$2')
    .split(',')

  var row = refParts[0]
  var column = refParts[1]
  var columnStr = ''

  for (; column; column = Math.floor((column - 1) / 26)) {
    columnStr = String.fromCharCode(((column - 1) % 26) + 65) + columnStr
  }

  return columnStr + row
}
function convertR1C1toA1 ( ref ) { if ( ! R1C1 . test ( ref ) ) { throw new Error ( ` ${ ref } ` ) } var refParts = ref . replace ( R1C1 , '$1,$2' ) . split ( ',' ) var row = refParts [ 0 ] var column = refParts [ 1 ] var columnStr = '' for ( ; column ; column = Math . floor ( ( column - 1 ) / 26 ) ) { columnStr = String . fromCharCode ( ( ( column - 1 ) % 26 ) + 65 ) + columnStr } return columnStr + row }
Convert R1C1 notation to A1 notation

@param {String} ref
@returns {String}
@throws {Error}
Convert R1C1 notation to A1 notation