在VC下设置Excel单元格的边框的步骤
为了能使得输出到Excel中的数据显示表格,可以调用事先设置好的模板,但是不灵活。我花了一个中午的时间摸索出如何设置它了。具体代码如下:
LPDISPATCHpRange;
CString cell; intc,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();//
虽然没有什么高深的技术含量,只是为了让后面需要的人少走点弯路。
不当之处,还望指正。