C#在窗体中嵌入Excel 有关字体,对齐 加边框 自动设置列 等操作

有关格式的问题,可以先打开excel ,录制宏,生成VB代码,再转换成C#语言,

1 设置字体大小

oSheet.get_Range("A" + (nFillRow).ToString(), strCol + "1").Font.Size =18;

2 根据列的大小(int型 )得到对应的列名

//// 取得列名
// 通常字段数不会太多,所以到 26*5 目前已经够了。
        private string GetColName(int iColNum)
        {
              string  strColNames = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,"
                  +"AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,"
                  +"BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,"
                  +"CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ," 
                 +"DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,DW,DX,DY,DZ";
            string []ss=strColNames .Split(new char []{','});
            return ss[iColNum - 1];

  }

3、根据每一列的内容,设置合适的列宽(列宽比每一列的最大值大一点点就可以了)

                for(int i=0;i<nRow ;i++)
                    for(int j=0;j<nCol ;j++)
                        iWeights[i, j] = ss[i, j].Length;//得到各单元格的长度
               iColoumn[0] = 0;

                for (int m = 0; m < nCol; m++)
                {
                   for (int k = 0; k < nRow ; k++)
                   if (iWeights[k , m] >  iColoumn[m] )
                    iColoumn[m] = iWeights[k , m];//得到各列最大值,
                }
                  if (bSetColoumnWeight == true)
                  {
                      for (int c = 0; c < nCol; c++)
                      {
                        string strColoumn = GetColName(c + 1);
                        oSheet.get_Range(strColoumn + "1", strColoumn + "2").ColumnWidth = iColoumn[c] + 3;  //设置每列宽度比它本身的数字大3个位置噢

                      }
                  }

4、给选中的范围加边框 、样式 
     oRange = oSheet.get_Range("A1", "e6");
     oRange.Borders.Weight = 2;
      oRange.Borders.get_Item(XlBordersIndex.xlEdgeBottom).LineStyle  =  Excel.XlLineStyle.xlContinuous;       

 // range.Interior.Pattern = Excel.XlPattern.xlPatternCrissCross;  加样式

5、内容居中对齐

    StringRange1.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
   // StringRange1.HorizontalAlignment = HorizontalAlignment.Center; //开始用此句,不行啊

 

Code

 

 


           

 

原文地址:https://www.cnblogs.com/lhjhl/p/1294067.html