為了能使得輸出到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();
//
雖然沒有什麼高深的技術含量,只是為了讓後面需要的人少走點彎路。
不當之處,還望指正。