近期做项目遇到用户自定义报表输出区域,使用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
本文分享了一段用于将Excel列标题(如A、B、C...)转换为对应十进制索引号的代码,适用于使用NPOI进行报表导出时的需求。通过二十六进制转十进制的转换,可以实现对用户自定义报表输出区域的灵活处理。
771

被折叠的 条评论
为什么被折叠?



