VC操作Excel之基本操作_第1页
VC操作Excel之基本操作_第2页
VC操作Excel之基本操作_第3页
VC操作Excel之基本操作_第4页
全文预览已结束

下载本文档

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

文档简介

1、VC 操作 Excel 之基本操作/ 变量的定义 _Application app; Workbooks books; _Workbook book; Worksheets sheets; _Worksheet sheet; Range range; LPDISPATCH lpDisp;COleVariant vResult; CStringstr = ; COleVariant covTrue(short)TRUE), covFalse(short)FALSE), covOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR); /创建 Excel 2003

2、 服务器 (启动 Excel) if (!app.CreateDispatch(Excel.Application,NULL) AfxMessageBox(Create Excel service failure!); return; / 设置为 FALSE 时,后面的 app.Quit(); 注释要打开 / 否则 EXCEL.EXE 进程会一直存在,并且每操作一次就会多开一 个进程 app.SetVisible(TRUE);books.AttachDispatch(app.GetWorkbooks(),true); lpDispbooks.Open(E:/test.xls, covOptio

3、nal, covOptional, covOptional, covOptional, covOptional, covOptional,covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional);ASSERT(lpDisp); book.AttachDispatch(lpDisp); / 得到 Worksheets sheets.AttachDispatch(book.GetWorksheets(),true); / 得到Worksheet sh

4、eet.AttachDispatch(sheets.GetItem(_variant_t(short)(1); / 得到全部 Cells range.AttachDispatch(sheet.GetCells(),true); / 往单元格 A1 里写入字符串数据,就像操作矩阵一样,第 1 行第 1 列 range.SetItem(_variant_t(LONG)1),_variant_t(LONG)1),_vari ant_t(hello word!); / 往单元格 A2 里写入时间数据 range.AttachDispatch(sheet.GetRange(_variant_t(A2),

5、 _variant_t(A2),true);range.SetValue2(_variant_t(2011/02/15); / 往单元格 A3A6 里写入浮点数据 range.AttachDispatch(sheet.GetRange(_variant_t(A3), _variant_t(A6),true);range.SetValue2(_variant_t(double)3.14); / 设置单元格的列 宽为 12 range.AttachDispatch(sheet.GetRange(_variant_t(A1), _variant_t(A1),true);range.SetColumn

6、Width(_variant_t(long)12); / 所有单元格居 中显示 range.AttachDispatch(sheet.GetCells(),true); range.SetHorizontalAlignment(_variant_t(long)-4108); / -4108:居中, -4131: 靠左, -4152:靠右 range.SetVerticalAlignment(_variant_t(long)-4108); / -4108: 居中, -4160: 靠上, -4107:靠下 / 读取单元格的数据,第 4行第 1 列range.AttachDispatch(range

7、.GetItem(_variant_t(long)(4),_vari ant_t(long)(1).pdispVal ); vResult =range.GetValue(covOptional); switch (vResult.vt) case VT_BSTR: / 字符串 str=vResult.bstrVal; break; case VT_R8:/ 8 字节的数字 str.Format(%f,vResult.dblVal);break; case VT_DATE: / 时间格式 SYSTEMTIME st; VariantTimeToSystemTime(vResult.date,

8、&st); break; case VT_EMPTY: / 单元格空的 str=; break; /MessageBox(str); Font ft; / 要插入 excel 类库里面的 Font 类,下面类似 range.AttachDispatch(sheet.GetRange(_variant_t(A3), _variant_t(A5),true); ft.AttachDispatch(range.GetFont(); ft.SetName(_variant_t( 华文行楷 ); / 字体 ft.SetSize(_variant_t(long)12); / 字号 /ft.SetC

9、olorIndex(_variant_t(long)3); / 字的颜色 : 红色 ft.SetColor( _variant_t(long) RGB(255, 0, 0) ) ); ft.SetBold(_variant_t(long)1); / 1 :粗体, 0:非粗体 Interior it; / 底色设置 range.AttachDispatch(sheet.GetRange(_variant_t(C3), _variant_t(E6),true); it.AttachDispatch(range.GetInterior(); it.SetColorIndex(_variant_t(l

10、ong)20); / 底色设置为浅青色Borders borders; / 先设置区域内所有单元格的边框borders= range.GetBorders();borders.SetColorIndex(_variant_t(long)1); borders.SetLineStyle(_variant_t(long)1); borders.SetWeight(_variant_t(long)2); / 然后设置外边框 / LineStyle= 线型 (113) Weight= 线宽 ColorIndex= 线的颜色 (-4105 为自动 , 1 为黑色 ) range.BorderAround(_variant_t(long)9),_variant_t(long)1),_va riant_t(long)1),vtMissing);range.AttachDispatch(sheet.GetRange(_variant_t(C8), _variant_t(D9),true); / 合并单元格 range.Merge(_variant_t(long)0); book.Save(); / 保存 Excel 的内容 / app.SetDisplayAlerts(false); / 不弹出对话框询 问是否保存 /

温馨提示

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

评论

0/150

提交评论