近期做项目遇到用户自定义报表输出区域,使用NPOI进行导出时需要将列标题字母ABCD.....转成对应的索引号,所以自己写了二十六进制转十进制的共用,发出来给大家参考和找BUG,有bug欢迎下方评论,O(∩_∩)O谢谢
#region Excel列标题转换十进制索引
public static int cellCodeToInt(string str)
{
//转大写
str = str.ToUpper();
//分割字符数组
char[] arr = str.ToCharArray();
//累计最终转换十进制结果
int val = 0;
//低位到高位开始转换
for(int i = arr.Length - 1;i >= 0;i--)
{
val += Convert.ToInt32( Math.Pow(26, arr.Length - 1 - i) * (arr[i] - 64) );
}
//结果减1适配从零还是的索引
val -= 1;
return val;
}
#endregion