VC下设置Excel单元格的边框

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 antibug 的 blog

      为了能使得输出到excel中的数据显示表格,可以调用事先设置好的模板,但是不灵活。我花了一个中午的时间摸索出如何设置它了。

      具体代码如下:

 lpdispatch prange;
 cstring   cell;
 int   c,c1,c2;

 _variant_t  vrange1;   // 设置单元格的线;
 _variant_t  vrange2;
 _variant_t  vrange3;
 _variant_t  vrange4;

   c='a';
   c1=j/26;
   c2=j%26;
   if(c1==0)
    cell.format("%c%d",c2+c,i+1); // i+1 :表示从第二行开始关联
   else
    cell.format("%c%c%d",c1+c-1,c2+c-1,i+1);

 verify(prange = m_worksheet.getrange(colevariant(cell)));
   m_range.attachdispatch(prange);
   //对齐方式
   var.vt = vt_i2;
   var.ival=-4108;
   m_range.sethorizontalalignment(var);
   m_range.setverticalalignment(var);
   //
   // 设置单元格的线;
   vrange1.vt =vt_i2;
   vrange1.lval =1;   // 线的样式:0- no line; 1-solid; 2-big dot;3-small dot;4-dash dot; 5-dash dot dot;
   vrange2.vt =vt_i2;
   vrange2.lval =3;  // 线的粗细程度;
   vrange3.vt =vt_i2;
   vrange3.lval =1;   // 1-black;2-white;3-red;4-green;5-blue; 6-yellow; 7-pink;8-dark blue;
   vrange4.vt = vt_ui4;
   vrange4.uintval =rgb(0,0,0);  // 我测试后认为,没有实际意义,只有vrange3起作用
   m_range.borderaround(vrange1,vrange2,vrange3,vrange4);
   //
   //
   strvalue=m_book.gettextrc(i,j+2);
   strvalue.trimleft(" ");
   strvalue.trimright(" ");  
   if(!strvalue.isempty())
   {
    m_range.setvalue(colevariant(strvalue));
   }
   m_range.releasedispatch();

//

 虽然没有什么高深的技术含量,只是为了让后面需要的人少走点弯路。

不当之处,还望指正。

本文关键:excel
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top