posts - 25,  comments - 25,  trackbacks - 0

      为了能使得输出到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();

//

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

不当之处,还望指正。

posted on 2005-05-25 10:04 子玉 阅读(835) 评论(1)  编辑  收藏

FeedBack:
# re: VC下设置Excel单元格的边框 (转)[未登录]
2008-05-04 15:19 | tony
将原来的文件删去就不会出现另存为对话框了,用CFileFind  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2005年5月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(7)

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜