zoukankan      html  css  js  c++  java
  • Excel如何动态获取列名

          遇到一个动态列,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 + ")");
                    }

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

  • 相关阅读:
    如何挑选牙膏--2019/10/20
    怎样选卫生纸-2019/10/20
    页面动态加入<script>标签并执行代码
    ss 各种浏览器兼容前缀写法
    nth-child(n)、first-child、last-child用法
    改变checkbox的默认样式
    border和outline的区别
    标签嵌套规则和注意事项
    物理尺寸 转换为 像素
    打印iframe内容
  • 原文地址:https://www.cnblogs.com/zhongjicainiao/p/5090028.html
Copyright © 2011-2022 走看看