导出数据时,根据第几列得到英文列号

在从dataTable导出数据到xls时,如果希望对其中指定的某几列统计求和,则需要知道单元格的起始范围。

下面这个算法,可以帮我们算出 第5列的英文就是E,第27列的英文就是AA

         /// <summary>
        /// 列从1开始,转换得到excel列中的英文序号
        ///   调用示例:string s = TransferExcelColumnIndex(5);//得到E
        /// </summary>
        /// <param name="iColIndex"></param>
        /// <returns></returns>

        public static string TransferExcelColumnIndex(int iColIndex)
        {
            string sResult = "";
            int iHead = iColIndex / 26;
            int iLeftOver = iColIndex % 26;

            if (iHead > 0)
            {
                foreach (char c in iHead.ToString())
                {
                    if(c=='1' && iLeftOver==0)
                    {
                        sResult += 'Z';
                    }
                    else
                    {
                        sResult += (char)(65 + Convert.ToInt32(c.ToString()) - 1);
                    } 
                }
            }

            if (iLeftOver > 0)
            {
                sResult += (char)(65 + iLeftOver - 1);
            }

            return sResult;
        }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值