How to convert a column number (e.g. 127) into an Excel column (e.g. AA)

前端 未结 30 2895
鱼传尺愫
鱼传尺愫 2020-11-22 00:35

How do you convert a numerical number to an Excel column name in C# without using automation getting the value directly from Excel.

Excel 2007 has a possible range o

30条回答
  •  生来不讨喜
    2020-11-22 01:00

    Refining the original solution (in C#):

    public static class ExcelHelper
    {
        private static Dictionary l_DictionaryOfColumns;
    
        public static ExcelHelper() {
            l_DictionaryOfColumns = new Dictionary(256);
        }
    
        public static String GetExcelColumnName(UInt16 l_Column)
        {
            UInt16 l_ColumnCopy = l_Column;
            String l_Chars = "0ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            String l_rVal = "";
            UInt16 l_Char;
    
    
            if (l_DictionaryOfColumns.ContainsKey(l_Column) == true)
            {
                l_rVal = l_DictionaryOfColumns[l_Column];
            }
            else
            {
                while (l_ColumnCopy > 26)
                {
                    l_Char = l_ColumnCopy % 26;
                    if (l_Char == 0)
                        l_Char = 26;
    
                    l_ColumnCopy = (l_ColumnCopy - l_Char) / 26;
                    l_rVal = l_Chars[l_Char] + l_rVal;
                }
                if (l_ColumnCopy != 0)
                    l_rVal = l_Chars[l_ColumnCopy] + l_rVal;
    
                l_DictionaryOfColumns.ContainsKey(l_Column) = l_rVal;
            }
    
            return l_rVal;
        }
    }
    

提交回复
热议问题