VC++讀寫打開Excel文檔數據

VC++讀寫打開Excel文檔(代碼備份)

一:寫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、效果如下。

分類: 0:VC++
發佈了23 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章