edRange; usedRange.AttachDispatch(sheet.GetUsedRange()); range.AttachDispatch(usedRange.GetRows()); long iRowNum=range.GetCount(); //已经使用的行数
range.AttachDispatch(usedRange.GetColumns()); long iColNum=range.GetCount(); //已经使用的列数
long iStartRow=usedRange.GetRow(); long iStartCol=usedRange.GetColumn();
//已使用区域的起始行,从1开始 //已使用区域的起始列,从1开始
//***** //读取第一个单元格的值 range.AttachDispatch(sheet.GetCells()); range.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal ); COleVariant vResult =range.GetValue(); CString str; if(vResult.vt == VT_BSTR) { str=vResult.bstrVal; } else if (vResult.vt==VT_R8) { str.Format("%f",vResult.dblVal); } else if(vResult.vt==VT_DATE) { SYSTEMTIME st; VariantTimeToSystemTime(&;vResult.date, &;st); } else if(vResult.vt==VT_EMPTY) { str=""; } //单元格空的 //时间格式 //8字节的数字 //字符串
//***** //读取第一个单元格的对齐方式,数据类型:VT_I4 //读取水平对齐方式 range.AttachDispatch(sheet.GetCells()); iCell.AttachDispatch((range.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal); vResult.lVal=0; vResult=iCell.GetHorizontalAlignment(); if(vResult.lVal!=0) { switch (vResult.lVal) { case 1: break; case -4108: //居中 break; case -4131 : //靠左 break; case -4152 : //靠右 break; } //默认
}
//垂直对齐方式 iCell.AttachDispatch((range.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal); vResult.lVal=0; vResult=iCell.GetVerticalAlignment(); if(vResult.lVal!=0) { switch (vResult.lVal)
{ case -4160 : break; case -4108 : break; case -4107 : break; } //靠下 //居中 //靠上
}
//***** //设置第一个单元格的值"HI,EXCEL!" range.SetItem(COleVariant(1),COleVariant(1),COleVariant("HI,EXCEL!"));
//***** //设置第一个单元格字体颜色:红色 Font font; range.AttachDispatch(sheet.GetCells()); range.AttachDispatch((range.GetItem (COleVariant(long(1)), COleVariant(long(1)))).pdispVal); font.SetColor(COleVariant((long)0xFF0000));
//***** //合并单元格的处理 //包括判断第一个单元格是否为合并单元格,以及将第一个单元格进行合并 Range unionRange; range.AttachDispatch(sheet.GetCells()); unionRange.AttachDispatch(range.GetItem
(COleVariant((long)1),COleVariant((long)1)).pdispVal );
vResult=unionRange.GetMergeCells(); if(vResult.boolVal==-1) { //合并单元格的行数 range.AttachDispatch (unionRange.GetRows ()); long iUnionRowNum=range.GetCount (); //是合并的单元格
//合并单元格的列数 range.AttachDispatch (unionRange.GetColumns ()); long iUnionColumnNum=range.GetCount ();
//合并区域的起始行,列 long iUnionStartRow=unionRange.GetRow(); long iUnionStartCol=unionRange.GetColumn(); //起始行,从1开始 //起始列,从1开始
} else if(vResult.boolVal==0) {//不是合并的单元格}
//将第一个单元格合并成2行,3列 range.AttachDispatch(sheet.GetCells()); unionRange.AttachDispatch(range.GetItem (COleVariant((long)1),COleVariant((long)1)).pdispVal ); unionRange.AttachDispatch(unionRange.GetResize(COleVariant((long)2),COleVariant((long)3))); unionRange.Merge(COleVariant((long)0)); //合并单元格
//*****
//将文件保存为2.xls book.SaveAs(COleVariant("C:\\\\2.xls"),covOptional