VC控制EXCEL的基本操作.doc_第1页
VC控制EXCEL的基本操作.doc_第2页
VC控制EXCEL的基本操作.doc_第3页
VC控制EXCEL的基本操作.doc_第4页
VC控制EXCEL的基本操作.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC控制EXCEL的基本操作之选择范围篇分类:EXCEL2012-09-03 09:352033人阅读评论(0)收藏举报exceldatec选择篇1选择单元格/选择一个单元格range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(A1),TRUE);/选择多个单元格range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(D1),TRUE);/使用变量表示单元格CString CellName;Int i=1;j=1;CellName.Format(_T(“%c%d”),j+64,i); /AZ 65-90/加载单元格rnge.AttachDispatch(range.GetRange(COleVariant(CellName),COleVariant(CellName);2选择某行1)/选择第一行range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(IV1),TRUE);/选择前5行range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(IV5),TRUE);2)先选择某行中的某个单元格,然后再选择整行Range rows;rows.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(A1),TRUE);rows=rows.GetEntireRow();3)获得所有的行,然后再选择指定行Range rows;range.AttachDispatch(sheet.GetRows(),TRUE);/选择第一行rows.AttachDispatch(range.GetItem(COleVariant(long)1),vtMissing).pdispVal);rows.SetRowHeight(COleVariant(long)60);3选择某一列1)range.AttachDispatch(sheet.GetRange(COleVariant(LA1),COleVariant(LA65536);/第一列2)先选择某列中的某个单元格,然后再选择整列range.AttachDispatch(sheet.GetRange(COleVariant(LA1),COleVariant(LA1);/第一列range=range.GetEntireColumn();3)先获得所有列,然后再选择某一列/获得所有列range.AttachDispatch(sheet.GetColumns(),true);/选择第一列range.AttachDispatch(range.GetItem(COleVariant(long)1),vtMissing).pdispVal,TRUE);4选择全部CELLSrange.AttachDispatch(sheet.GetCells(),TRUE);/加载所有单元格5选择已使用的单元格range.AttachDispatch(sheet.GetUsedRange();/加载已使用的单元格6获取单元格的值1)range=sheet.GetRange(COleVariant(A1),COleVariant(A1);COleVariant rValue;rValue=COleVariant(range.GetValue();rValue.ChangeType(VT_BSTR);this-MessageBox(CString(rValue.bstrVal);2)/读取第一个单元格的值range.AttachDispatch(sheet.GetCells();range.AttachDispatch(range.GetItem (COleVariant(long)1),COleVariant(long)1).pdispVal );vResult =range.GetValue();CString str;if(vResult.vt = VT_BSTR) /字符串str=vResult.bstrVal;else if (vResult.vt=VT_R8) /8字节的数字str.Format(L%f,vResult.dblVal);else if(vResult.vt=VT_DATE) /时间格式SYSTEMTIME st;VariantTimeToSystemTime(long)&vResult.date, &st);else if(vResult.vt=VT_EMPTY) /单元格空的str=;VC控制EXCEL的基本操作之设置篇分类:EXCEL2012-09-03 09:372888人阅读评论(2)收藏举报excelshapesfloatupc设置篇1 设置单元格的值1)选中指定单元格,使用SetValue设置值CellName.Format(_T(A%d),i);/单元格的名称range.AttachDispatch(sheet.GetRange(COleVariant(CellName),COleVariant(CellName);/加载单元格range.SetValue(COleVariant(subFileName);CellName.Format(_T(C%d),i);/单元格的名称range.AttachDispatch(sheet.GetRange(COleVariant(CellName),COleVariant(CellName);/加载单元格range.SetValue(COleVariant(long)i);2)选中所有的单元格, 使用SetItem 设置指定单元格的值range.AttachDispatch(sheet.GetCells(),TRUE);/加载所有单元格/设置第I行 第1、2、3列的值range.SetItem(COleVariant(long)(i),COleVariant(long)1),COleVariant(subFileName); /第一列range.SetItem(COleVariant(long)(i),COleVariant(long)2),COleVariant(unicodeStr); /第二列range.SetItem(COleVariant(long)(i),COleVariant(long)3),COleVariant(long)i); /第三列2 设置行高列宽选中某列 设置列宽/获得所有列range.AttachDispatch(sheet.GetColumns(),true);/设置第一列的列宽 Range colscols.AttachDispatch(range.GetItem(COleVariant(long)1),vtMissing).pdispVal,TRUE);cols.SetColumnWidth(COleVariant(long)10); /设置列宽/设置第4列的列宽cols.AttachDispatch(range.GetItem(COleVariant(long)4),vtMissing).pdispVal,TRUE);cols.SetColumnWidth(COleVariant(long)10); /设置列宽/设置列宽为自动适应cols.AutoFit();设置行高 Range rows; range.AttachDispatch(sheet.GetRows(),TRUE); /选择第一行 rows.AttachDispatch(range.GetItem(COleVariant(long)1),vtMissing).pdispVal);/设置行高 rows.SetRowHeight(COleVariant(long)60);注意: 行高列宽使用的单位不一样3 设置单元格类型 range.AttachDispatch(sheet.GetCells(),TRUE);/加载所有单元格 range.SetNumberFormat(COleVariant(L); /将单元格设置为文本类型4 设置单元格字体 Font ft; /设置第一列的字体 range.AttachDispatch(sheet.GetColumns(),true); range.AttachDispatch(range.GetItem(COleVariant(long)1),vtMissing).pdispVal,TRUE); /字体作用范围 ft.AttachDispatch(range.GetFont(); ft.SetName(COleVariant(_T(宋体); ft.SetSize(COleVariant(long)48);ft.SetBold(COleVariant(long)1);/粗体ft.SetColorIndex(COleVariant(long)2);/设置字体颜色5 设置单元格背景色range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(D1); /设置底色/ Interior it; it.AttachDispatch(range.GetInterior(); it.SetColorIndex(COleVariant(long)11);/标题底色 /表格内容的底色/ range.AttachDispatch(sheet.GetRange(COleVariant(_T(A2),COleVariant(_T(D5); it.AttachDispatch(range.GetInterior(); it.SetColorIndex(COleVariant(long)15);6 设置表格边框1)range.AttachDispatch(sheet.GetRange(COleVariant(_T(A2),COleVariant(_T(D5);/LineStyle=线型Weight=线宽ColorIndex=线的颜色(-4105为自动)range.BorderAround(COleVariant(long)1),(long)2,(long)-4105),vtMissing);/设置边框2)range.AttachDispatch(sheet.GetRange(COleVariant(_T(A2),COleVariant(_T(D5); _variant_t v1; /线型 _variant_t v2; /宽度 _variant_t v3; /颜色 v1.vt=VT_I2; v1.lVal=2; / 线的样式:- no line; 1-solid; 2-big dot;3-small dot;4-dash dot; 5-dash dot dot; v2.vt=v1.vt; v2.lVal=3; / 线的粗细程度 v3.vt=v1.vt; v3.lVal=1; / 1-black;2-white;3-red;4-green;5-blue; 6-yellow; 7-pink;8-dark blue; UnitRge.BorderAround(v1,v2,v3,vtMissing);/设置边框7 合并单元格1) /合并单元格 /加载要合并的单元格 range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(D1),TRUE); range.Merge(COleVariant(long)0);2) /将第一个单元格合并成行,列 range.AttachDispatch(sheet.GetCells(); unionRange.AttachDispatch(range.GetItem (COleVariant(long)1),COleVariant(long)1).pdispVal ); /第一个单元格 unionRange.AttachDispatch(unionRange.GetResize(COleVariant(long)3),COleVariant(long)2); /GetResize(3,2) 从第一个单元格开始合并行列的所有单元格 unionRange.Merge(COleVariant(long)0); /合并单元格8 设置单元格文本为自动换行 及排列方式 range.AttachDispatch(sheet.GetUsedRange();/加载已使用的单元格 range.SetWrapText(COleVariant(long)1);/设置单元格内的文本为自动换行 /设置齐方式为水平垂直居中 /水平对齐:默认1,居中-4108,左-4131,右-4152 /垂直对齐:默认2,居中-4108,左-4160,右-4107 range.SetHorizontalAlignment(COleVariant(long)-4108); range.SetVerticalAlignment(COleVariant(long)-4108);9 在单元格中插入公式/选择A2单元格,插入一个公式=RAND()*100000,并设置A2数字格式为货币形式range=sheet.GetRange(COleVariant(LA2),COleVariant(LA2);range.SetFormula(COleVariant(L=RAND()*100000);range.SetNumberFormat(COleVariant(L$0.00);10 在单元格中插入图片 Shapes shapes = sheet.GetShapes();/ 从Sheet对象上获得一个Shapes range.AttachDispatch(sheet.GetRange(COleVariant(LE5),COleVariant(LE5); / 获得Range对象,用来插入图片 shapes.AddPicture( Ld:pic.bmp , false , true , (float)range.GetLeft().dblVal ,(float)range.GetTop().dblVal,(float)range.GetWidth().dblVal,(float)range.GetHeight().dblVal); ShapeRange sRange = shapes.GetRange(_variant_t(long(1); sRange.SetHeight(float(30);/在RANGE范围内 设置图片宽高 sRange.SetWidth(float(30);11 对选取的区域进行排序 #define xlAscending (long) 1 #define xlDescending (long) 2 #define vOpt COleVariant(long) DISP_E_PARAMNOTFOUND, VT_ERROR) #define xlHeader (long) 1 / 选取的区域有标题 #define xlNoHeader (long) 2 / 选取的区域无标题 一定要正确确定是否有标题,否则排序可能不成功 #define xlMatchCase COleVariant(long) 1) #define xlIgnoreCase COleVariant(long) 0) #define xlTopToBottom (long) 1 / 垂直方向进行排序 #define xlLeftToRight (long) 2 / 水平方向进行排序 #define xlPinYin (long) 1 / this is the default / 按字符的中文拼音进行排序 #define xlStroke (long) 2 / 按每个字符中的笔画数进行排序 VARIANT key1; / these lines set up first arg (key1) to sort V_VT(&key1) = VT_DISPATCH; / 排序时,关键字的vt设置为VT_DISPATCH V_DISPATCH(&key1) = sheet.GetRange(COleVariant(LA1),COleVariant(LA1); / 设置按哪个关键字进行排序 选择单元意为:按此列(或行)为主关键字进行排序 range=sheet.GetRange(COleVariant(LA1),COleVariant(CellName); / 选择对哪些区域内的单元格进行排序 range.Sort(key1, xlAscending, vOpt, vOpt, xlAscending, vOpt,xlAscending,xlNoHeader,vOpt,xlIgnoreCase,xlTopToBottom,xlPinYin); /设置排序 无标题时一定要设置为xlNoHeader 否则不起作用VC控制EXCEL的基本操作之选择范围篇分类:EXCEL2012-09-03 09:352034人阅读评论(0)收藏举报exceldatec选择篇1选择单元格/选择一个单元格range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(A1),TRUE);/选择多个单元格range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(D1),TRUE);/使用变量表示单元格CString CellName;Int i=1;j=1;CellName.Format(_T(“%c%d”),j+64,i); /AZ 65-90/加载单元格rnge.AttachDispatch(range.GetRange(COleVariant(CellName),COleVariant(CellName);2选择某行1)/选择第一行range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(IV1),TRUE);/选择前5行range.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(IV5),TRUE);2)先选择某行中的某个单元格,然后再选择整行Range rows;rows.AttachDispatch(sheet.GetRange(COleVariant(_T(A1),COleVariant(_T(A1),TRUE);rows=rows.GetEntireRow();3)获得所有的行,然后再选择指定行Range rows;range.AttachDispatch(sheet.GetRows(),TRUE);/选择第一行rows.AttachDispatch(range.GetItem(COleVariant(long)1),vtMissing).pdispVal);rows.SetRowHeight(COleVariant(long)60);3选择某一列1)range.AttachDispatch(sheet.GetRange(COleVariant(LA1),COleVariant(LA65536);/第一列2)先选择某列中的某个单元格,然后再选择整列range.AttachDispatch(sheet.GetRange(COleVariant(LA1),COleVariant(LA1);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论