现在的位置: 首页 > 综合 > 正文

VC++读写打开Excel文档(代码备份)

2012年11月15日 ⁄ 综合 ⁄ 共 1943字 ⁄ 字号 评论关闭

一:写Excel文档。

    // 获取程序所在目录
    GetCurrentDirectory(MAX_PATH,g_csPathBuff);
    
    //创建并写入Excel文件
    CDatabase database;
    char *sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";// Excel安装驱动
    char sExcelFile[MAX_PATH];
    sprintf(sExcelFile,"%s\\data.xls",g_csPathBuff);// 要建立的Excel文件     
    char sSql[500];
    DeleteFile(sExcelFile);

    TRY 
    {
        // 创建进行存取的字符串
        sprintf(sSql,"DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
            sDriver, sExcelFile, sExcelFile);
        
        // 创建数据库 (既Excel表格文件)

        database.OpenEx(sSql,CDatabase::noOdbcDialog);
            // 创建表结构(雷管数量、爆破坐标、爆破日期、、、)
            sprintf(sSql,
                "CREATE TABLE 批次%d ( 雷管数量 TEXT,爆破日期 TEXT,经度 TEXT,纬度 TEXT,爆破人员编号 TEXT,起爆器编号 TEXT,信息状态 TEXT,雷管编号 TEXT,雷管ID TEXT,延迟时间 TEXT)",
                i);
            // 执行SQL语句
            database.ExecuteSQL(sSql);
sprintf(sSql,
    "INSERT INTO 批次%d(雷管数量,爆破日期,经度,纬度,爆破人员编号,起爆器编号,信息状态) VALUES(%s,%s,%s,%s,%s,%d,%s)",
    i,
    g_DBDArray[i].ucDetonatorLength,
    g_DBDArray[i].ucBlastingDate,
    csJingdu,
    csWeidu,
    g_DBDArray[i].ucOperatorID,
    g_nOperatorDev,
    g_DBDArray[i].ucIsRead
    );
      // 执行SQL语句
      database.ExecuteSQL(sSql);

    }
    CATCH (CMemoryException, e)
    {
        AfxMessageBox("数据写入到Excel出错了");
        database.Close();
    }
    END_CATCH

 

二:读Excel文档。

1、首先要填如下支持类。

2、怎么添加(即添加excel头文件)

3、记得在App类中的InitInstance函数最前面加入AfxOleInit()函数初始化组件。

4、上二步做好后就可以写打开.xls文档的代码了。

    // TODO: Add your control notification handler code here
    _Application objApp;//判断是否存在EXCEL应用程序
    Workbooks objBooks;    
    _Workbook objBook;
    Worksheets objSheets;
    _Worksheet objSheet;
    Range objRange,usedRange;//单元格获取
    Font font;
    objApp.CreateDispatch("Excel.Application");//判断是否存在EXCEL应用程序
    COleVariant VOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);    
    
    objApp.SetVisible(TRUE);
    objApp.SetUserControl(TRUE);
    LPDISPATCH pwkbooks=objApp.GetWorkbooks();
    objBooks.AttachDispatch(pwkbooks,TRUE);
    
    objBooks=objApp.GetWorkbooks();//
    objBook=objBooks.Add(VOptional);
    objSheets=objBook.GetSheets();

    char sExcelFile[MAX_PATH];
    sprintf(sExcelFile,"%s\\data.xls",g_csPathBuff);// 要建立的Excel文件     
    objBooks.Open(sExcelFile,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,
        VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional,VOptional);

5、效果如下。

抱歉!评论已关闭.