A其实就是1,B就是2,Z是26,AA是27
不过就是26进制而已
你只要知道它的进位规律,完全可以自己根据列的索引来算

解决方案 »

  1.   

    26进制进位规则:
    首先,没有0.从1开始的.
    A=1,B=2,...,Z=26
    那么AA=1*26+1=27
    ZZ=26*26+26
    最终算得的数要转变成索引,还要再减1,因为索引是从0开始的反过来计算其实一样,索引先+1,再按26进制转成百位,十位,个位的数字,然后1对应A,2对应B的转字母拼接一下
      

  2.   

    数字转字母,字母转数字有个简单的办法
    因为A转char类型编码是65,B是66,Z是90,都是连续的
    可以char c=(char)(n+64);
    这样n=1时,c就是'A'
    反过来一样
    知道一个字母,把它减去64再转int型,就是对应的数字
      

  3.   

    例如你可以使用 Cells[行,列] 的形式来获得 Range。Excel 支持的坐标格式不只一种,可以替换。
      

  4.   

    我描述的不清楚,是这样,有的列有数据,有的列没有数据,我只需要获取有数据的列的列标(比如只有A和E列有数据,那只需要得到A和E),所以就有两个问题,1.如何判断列有无数据,2获取列标。
      

  5.   

    我是用C#把Excel读到内存里操作的
      

  6.   

    那要看你用office.excel.dll读取的(com组件),还是用NPOI
    用com组件,本身就是把它当数据库读,oledb执行select,没有数据的列不会读出来
    NPOI,也有列数的属性可以获取
      

  7.   

    1.没有用NPOI。
    2.A,B,C,D四列。A,B,D这3列有数据,但是读出来的列数是4,不是3。