preRange = excel.excelApp.get_Range("A" + 3,((char)('A' + 34)).ToString()
                        + (((RowCount).ToString()));我想从A列开始,然后到34列之后划个范围,可是'A'+34和excel的列名对应不起来,这个该怎么弄?

解决方案 »

  1.   

    不是A+34对不起来的问题
    你"A" + 3就跑不起来吧
    要知道EXCEL的列是A-Z,第27列开始就是AA、AB、AC....
    你直接加有啥有
      

  2.   

    补充下,你的A1应该是A列第一行的意思。Excel中是A~Z,AA~AZ这样排序的,后面跟的数字应该是第几行。如果对列操作的话要做下列操作。
    int x = (Len  / 26);//取列的十位
                if (x > 0)
                {
                    s = Convert.ToString(getIToA(asciinum + x - 1));
                }
                x = (Len % 26);//取列的个位
                if (x > 0)
                {
                    s += Convert.ToString(getIToA(asciinum + x));
                }
      

  3.   

    不好意思
    我写错了
    "A"代表A列吧,'A'+1代表B列,我想得到34列之后的列名,‘A’+34,这个好像不行
      

  4.   

    对,就那些AA什么的,怎么用A列加个东西就得到那个列名
      

  5.   


            /// <summary>
            /// 获取EXCEL中的列号
            /// </summary>
            /// <param name="index">列顺序号,1、2、3……</param>
            /// <returns>A、B、C……ZZ</returns>
            private string ColumnName( int index )
            {
                string value = string.Empty;            int left = (index-1) / 26;
                int right = index % 26;            if ( left > 0 )
                {
                    value = ( (char)( 64 + left ) ).ToString();
                }            if ( right == 0 )
                {
                    value += "Z";
                }
                else
                {
                    value += ( (char)( 64 + right ) ).ToString();
                }
                
                return value;
            }