VC控制EXCEL的基本操作.docx

上传人:b****8 文档编号:10493550 上传时间:2023-02-14 格式:DOCX 页数:15 大小:19.12KB
下载 相关 举报
VC控制EXCEL的基本操作.docx_第1页
第1页 / 共15页
VC控制EXCEL的基本操作.docx_第2页
第2页 / 共15页
VC控制EXCEL的基本操作.docx_第3页
第3页 / 共15页
VC控制EXCEL的基本操作.docx_第4页
第4页 / 共15页
VC控制EXCEL的基本操作.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

VC控制EXCEL的基本操作.docx

《VC控制EXCEL的基本操作.docx》由会员分享,可在线阅读,更多相关《VC控制EXCEL的基本操作.docx(15页珍藏版)》请在冰豆网上搜索。

VC控制EXCEL的基本操作.docx

VC控制EXCEL的基本操作

 

VC控制EXCEL的基本操作之选择范围篇

分类:

 EXCEL2012-09-0309:

35 2033人阅读 评论(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);

 

//使用变量表示单元格

CStringCellName;

Inti=1;j=1;

CellName.Format(_T(“%c%d”),j+64,i);  //A–Z 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)先选择某行中的某个单元格,然后再选择整行

       Rangerows;

 

       rows.AttachDispatch(sheet.GetRange(COleVariant(_T("A1")),COleVariant(_T("A1"))),TRUE);

       rows=rows.GetEntireRow();

 

3)获得所有的行,然后再选择指定行

    Rangerows;

 

       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(L"A1"),COleVariant(L"A65536")));   //第一列

 

2)先选择某列中的某个单元格,然后再选择整列

 

range.AttachDispatch(sheet.GetRange(COleVariant(L"A1"),COleVariant(L"A1")));   //第一列

range=range.GetEntireColumn();

 

3)先获得所有列,然后再选择某一列

//获得所有列

range.AttachDispatch(sheet.GetColumns(),true);

//选择第一列

range.AttachDispatch(range.GetItem(COleVariant((long)1),vtMissing).pdispVal,TRUE);

 

4 选择全部CELLS

 

range.AttachDispatch(sheet.GetCells(),TRUE);//加载所有单元格

 

5 选择已使用的单元格

range.AttachDispatch(sheet.GetUsedRange());//加载已使用的单元格

 

6 获取单元格的值

1)

range=sheet.GetRange(COleVariant("A1"),COleVariant("A1"));

COleVariantrValue;

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();

 

 CStringstr;

 if(vResult.vt==VT_BSTR)      //字符串

 {

        str=vResult.bstrVal;

 }

 elseif(vResult.vt==VT_R8)    //8字节的数字

 {

        str.Format(L"%f",vResult.dblVal);

 }

 elseif(vResult.vt==VT_DATE)   //时间格式

 {

        SYSTEMTIMEst;

        VariantTimeToSystemTime((long)&vResult.date,&st);

 }

 elseif(vResult.vt==VT_EMPTY)  //单元格空的

 {

        str="";

 } 

 

VC控制EXCEL的基本操作之设置篇

分类:

 EXCEL2012-09-0309:

37 2888人阅读 评论

(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);

//设置第一列的列宽 Rangecols

cols.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();

 

设置行高

 

 

   Rangerows;

 

      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设置单元格字体

 

      Fontft;

 

      //设置第一列的字体

      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"))));

      //////////////设置底色/////////////////

      Interiorit;

      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_tv1; //线型

                    _variant_tv2; //宽度

                    _variant_tv3; //颜色

 

                    v1.vt=VT_I2;

                    v1.lVal=2;//线的样式:

-noline;1-solid;2-bigdot;3-smalldot;4-dashdot;5-dashdotdot; 

 

                    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-darkblue; 

 

                    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(L"A2"),COleVariant(L"A2"));

range.SetFormula(COleVariant(L"=RAND()*100000"));

range.SetNumberFormat(COleVariant(L"$0.00"));

 

10在单元格中插入图片

 

      Shapes  shapes  =  sheet.GetShapes();//从Sheet对象上获得一个Shapes   

      range.AttachDispatch(sheet.GetRange(COleVariant(L"E5"),COleVariant(L"E5")));//获得Range对象,用来插入图片

      shapes.AddPicture(L"d:

\\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对选取的区域进行排序

 

      #definexlAscending(long)1

      #definexlDescending(long)2

      #definevOptCOleVariant((long)DISP_E_PARAMNOTFOUND,VT_ERROR)

      #definexlHeader(long)1                           //选取的区域有标题

      #definexlNoHeader(long)2                         //选取的区域无标题   一定要正确确定是否有标题,否则排序可能不成功

      #definexlMatchCaseCOleVariant((long)1)

      #definexlIgnoreCaseCOleVariant((long)0)

      #definexlTopToBottom(long)1                      //垂直方向进行排序

      #definexlLeftToRight(long)2                      //水平方向进行排序

      #definexlPinYin(long)1//thisisthedefault    //按字符的中文拼音进行排序

      #definexlStroke(long)2                           //按每个字符中的笔画数进行排序

 

      VARIANTkey1;//theselinessetupfirstarg(key1)tosort

      V_VT(&key1)=VT_DISPATCH;                          //排序时,关键字的vt设置为VT_DISPATCH

      V_DISPATCH(&key1)=sheet.GetRange(COleVariant(L"A1"),COleVariant(L"A1"));  //设置按哪个关键字进行排序选择单元意为:

按此列(或行)为主关键字进行排序

      range=sheet.GetRange(COleVariant(L"A1"),COleVariant(CellName));             //选择对哪些区域内的单元格进行排序

      range.Sort(key1,xlAscending,vOpt,vOpt,xlAscending,vOpt,xlAscending,xlNoHeader,vOpt,xlIgnoreCase,xlTopToBottom,xlPinYin);//设置排序无标题时一定要设置为xlNoHeader 否则不起作用

 

VC控制EXCEL的基本操作之选择范围篇

分类:

 EXCEL2012-09-0309:

35 2034人阅读 评论(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);

 

//使用变量表示单元格

CStringCellName;

Inti=1;j=1;

CellName.Format(_T(“%c%d”),j+64,i);  //A–Z 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)先选择某行中的某个单元格,然后再选择整行

       Rangerows;

 

       rows.AttachDispatch(sheet.GetRange(COleVariant(_T("A1")),COle

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1