VC下設定Excel單元格的邊框 (轉)

worldblog發表於2007-12-12
VC下設定Excel單元格的邊框 (轉)[@more@]

  為了能使得輸出到中的資料顯示錶格,可以事先設定好的模板,但是不靈活。我花了一箇中午的時間摸索出如何設定它了。

 具體程式碼如下:

 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();

//

 雖然沒有什麼高深的技術含量,只是為了讓後面需要的人少走點彎路。

不當之處,還望指正。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991579/,如需轉載,請註明出處,否則將追究法律責任。

相關文章