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



选择篇

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);   //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)先选择某行中的某个单元格,然后再选择整行

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

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

 } 

本文出自:http://blog.csdn.net/shuilan0066/article/details/7936376


选择篇

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);   //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)先选择某行中的某个单元格,然后再选择整行

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

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

 } 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值