码迷,mamicode.com
首页 > 其他好文 > 详细

Excel如何动态获取列名

时间:2015-12-30 21:45:40      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

      遇到一个动态列,N行数据的求和,但是求和时需要Excel列名(A,B,C。。。)当时觉得这太非常难了。后来仔细研究了下Excel列名,都是从A到Z,然后AA再到AZ,以此类推。

      如此的话就好弄了。通过ASCII码来获取字母。

                foreach (var item in dicColumns)
                {
                    var subTotal = totalRow.CreateCell(item.Key);
                    subTotal.SetCellType(NPOI.SS.UserModel.CellType.Numeric);
                    byte[] array = new byte[1];
                    string strColName = string.Empty;
                    if (item.Key >= 26)
                    {
                        int intGoup = item.Key  / 26;
                        
                        array[0] = (byte)(64 + intGoup); //ASCII码强制转换二进制
                        strColName += Convert.ToString(System.Text.Encoding.ASCII.GetString(array));
                        array[0] = (byte)(65 + (item.Key % 26)); //ASCII码强制转换二进制
                        strColName += Convert.ToString(System.Text.Encoding.ASCII.GetString(array));
                    }
                    else
                    {
                        array[0] = (byte)(64 + item.Key + 1); //ASCII码强制转换二进制
                        strColName = Convert.ToString(System.Text.Encoding.ASCII.GetString(array));
                    }
                 
                    subTotal.SetCellFormula("sum(" + strColName + "2" + " : " + strColName + intLastRowIndex + ")");
                }

     小小学习经历,但是我也度娘了一会,结果却没找到。希望此段代码能帮助有需要的人。如果大家有的解决方法也可以告知。多谢。

Excel如何动态获取列名

标签:

原文地址:http://www.cnblogs.com/zhongjicainiao/p/5090028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!