基于excel9.h的excel处理

基于excel9.h的excel处理;

#include "excel9.h"
#include <iostream>
using namespace std;
class excel_lwn
{
    public:
    excel_lwn()
    {
        CoInitialize(NULL);
        if(!app.CreateDispatch(_T("Excel.Application"),NULL))        {    /*"启动Excel服务器失败!"    */    }    
        f_result = NULL;
        flag=-1;
    }
    ~excel_lwn()
    {
        book.SetSaved(TRUE);
        books.Close();   
        app.Quit();
    }

    void OpenTable(CString excelName, int table=1)
    {
        books=app.GetWorkbooks();
        COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
        lpDisp = books.Open(excelName,
            covOptional, covOptional, covOptional, covOptional,
            covOptional, covOptional, covOptional, covOptional,
            covOptional, covOptional, covOptional, covOptional);
        book.AttachDispatch( lpDisp );
        sheets=book.GetSheets();
        sheet=sheets.GetItem(COleVariant((short)table));
    }
    void GetValue(int i=1,int lie=1)
    {
        char c_lie[2];
        c_lie[0] =64+ lie;    
        c_lie[1]= '\0';
        cs_lie=c_lie;

        char c_hang[11];
        itoa(i,c_hang, 10);
        cs_hang=c_hang;

        Range    range=sheet.GetRange(COleVariant(cs_lie+cs_hang),COleVariant(cs_lie+cs_hang));
        COleVariant rValue= range.GetValue();
        isSuccess = rValue.vt;
        if (rValue.vt ==VT_BSTR )
        {
            //MessageBox(NULL,CString(rValue.bstrVal),TEXT("你好"),MB_ICONINFORMATION|MB_YESNO);
            cs_result = rValue.bstrVal;
            flag=1;
        }
        if (rValue.vt ==VT_R8 )
        {
            //cout<<rValue.dblVal<<endl;
            f_result = rValue.dblVal;
            i_result = f_result;
            char temp[15];
            itoa(f_result,temp,15);
            cs_result = temp;
            flag = 0;
        }
    }
private:
    _Application app;
    Workbooks books;
    _Workbook book;
    Worksheets sheets;
    _Worksheet sheet;
    LPDISPATCH lpDisp;  
    CString cs_lie;
    CString cs_hang;
public:
    CString cs_result;
    double f_result;
    int i_result;
    int flag;// 0表示是数字,1表示是字符串
    bool isSuccess;
};

int main(int argc, char *argv[])
{
    //OnButton2();
    excel_lwn my;
    my.OpenTable("C:\\d.xlsx",1);
    my.GetValue(1,1);
    cout<<my.i_result<<endl;
    my.GetValue(5,5);
    cout<<my.f_result<<endl;
    return true;
}

相关文件:http://pan.baidu.com/s/1hqfBn72 

c#中关于excel的处理: http://www.codeproject.com/Tips/813187/Csharp-Read-and-write-Excel-xls-and-xlsx-files-con

转载于:https://www.cnblogs.com/lwngreat/p/4508063.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值