Visual C++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。
如果将来你不打算升级到unicode,那么也不需要_T,
『VC源代码』 - VC技术(COM技术)
为了能使得输出到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();
//
虽然没有什么高深的技术含量,只是为了让后面需要的人少走点弯路。
不当之处,还望指正。