Skip to contents

convert column number to 'Excel' column name

Usage

colNum2excelName(x, useLetters = LETTERS, zeroVal = "a", ...)

Arguments

x

integer vector

useLetters

character vector of single-digit characters to use as digits in the resulting column name. Note that these characters can be of almost any length, with any content.

zeroVal

character single-digit to be used whenever x==0, or as a prefix for negative values. In theory there should be no negative input values, but this basic mechanism is used to handle the possibility.

...

Additional arguments are ignored.

Value

character vector with length(x)

Details

The purpose is to convert an integer column number into a valid 'Excel' column name, using LETTERS starting at A. This function implements an arbitrary number of digits, which may or may not be compatible with each version of 'Excel'. 18,278 columns would be the maximum for three digits, "A" through "ZZZ".

This function is useful when referencing 'Excel' columns via another interface such as via openxlsx. It is also used by makeNames() when the numberStyle="letters", in order to provide letter suffix values.

One can somewhat manipulate the allowed column names via the useLetters argument, which by default uses the entire 26-letter Western alphabet.

Examples

colNum2excelName(1:30)
#>  [1] "A"  "B"  "C"  "D"  "E"  "F"  "G"  "H"  "I"  "J"  "K"  "L"  "M"  "N"  "O" 
#> [16] "P"  "Q"  "R"  "S"  "T"  "U"  "V"  "W"  "X"  "Y"  "Z"  "AA" "AB" "AC" "AD"