转换到1 B到2 ... Z到26,然后到AA AB 27至28(列索引在Excel中列引用) [英] Convert A to 1 B to 2 ... Z to 26 and then AA to 27 AB to 28 (column indexes to column references in Excel)

查看:254
本文介绍了转换到1 B到2 ... Z到26,然后到AA AB 27至28(列索引在Excel中列引用)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何一个是否有算法或逻辑转换为1,B为2,...,Z 26,然后,AA至27日,AB至28等。

Does any one have algorithm or logic to Convert A to 1 ,B to 2, ... ,Z to 26 and then ,AA to 27, AB to 28 etc.

在换句话说,转换列索引在Excel中列引用。

In other words, converting a column index into the column reference in Excel.

推荐答案

看一看这些

/// <summary>
/// 1 -> A<br/>
/// 2 -> B<br/>
/// 3 -> C<br/>
/// ...
/// </summary>
/// <param name="column"></param>
/// <returns></returns>
public static string ExcelColumnFromNumber(int column)
{
    string columnString = "";
    decimal columnNumber = column;
    while (columnNumber > 0)
    {
    	decimal currentLetterNumber = (columnNumber - 1) % 26;
    	char currentLetter = (char)(currentLetterNumber + 65);
    	columnString = currentLetter + columnString;
    	columnNumber = (columnNumber - (currentLetterNumber + 1)) / 26;
    }
    return columnString;
}

/// <summary>
/// A -> 1<br/>
/// B -> 2<br/>
/// C -> 3<br/>
/// ...
/// </summary>
/// <param name="column"></param>
/// <returns></returns>
public static int NumberFromExcelColumn(string column)
{
    int retVal = 0;
    string col = column.ToUpper();
    for (int iChar = col.Length - 1; iChar >= 0; iChar--)
    {
    	char colPiece = col[iChar];
    	int colNum = colPiece - 64;
    	retVal = retVal + colNum * (int)Math.Pow(26, col.Length - (iChar + 1));
    }
    return retVal;
}

这篇关于转换到1 B到2 ... Z到26,然后到AA AB 27至28(列索引在Excel中列引用)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆