程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> VC中對office的操作

VC中對office的操作

編輯:vc教程

以前導出數據的時候都是自己定義格式,自己來解析,或者直接導出到TXT裡,這顯然不能滿足用戶的繼續編輯的要求,所以我用自動化技術寫了幾個函數可以將數據導出到Word和Excel中,僅僅是標格數據。。。

這個過程是這樣的:http://blog.csdn.Net/hoya5121

在VC6的類向導中的AUTOMATION頁筐中“ADD CLASS”,然後選擇“from a type”,浏覽到Office目錄選擇導入工程文件 EXCEL9.OLB 和msword9.olb,然後將需要的類導入到工程中,這裡出現一個問題,就是excel和word同時導入的時候Excel9.h 和msWord9.h
兩個文件中居然有名字相同的類導致連接出錯,我不知道是我使用錯誤,還是ms沒注意到這個問題。。。最終我這樣解決了這個問題,在Excel.h文件中用namespace將正個文件加入到一個名字空間中。。。

接下來的工作就比較簡單了,打開Office將你需要的流程錄制成vba的宏,然後將宏翻譯成vc的代碼。。下面將我的導入標格的代碼貼出來:
 /**/////////////////對Word的操作  2005-09-26///////////////////////
//.h
class CStringArrayOut : public CStringArray
...{
public:
    CStringArrayOut& Operator = (const CStringArrayOut& strarrarr)
    ...{
        if(&strarrarr == this)
            return *this;
        this->RemoveAll();
        for(int i = 0; i < strarrarr.GetSize(); i++)
        ...{
            this->Add(strarrarr[i]);
        }

        return *this;
    }
};

typedef CArray<CStringArrayOut,CStringArrayOut&> StrVecVecType;

void WordTable(CString tablename,int rowNum,int colNum,StrVecVecType& tablestr,CString strOutDocFile);

void ExcelTable(CString tablename,
                int rowNum,
                int colNum,
                StrVecVecType& tablestr,
                CString strOutExcelFile);

//.cpp
void WordTable(CString tablename,int rowNum,int colNum,StrVecVecType& tablestr,CString strOutDocFile)
...{   
    int i, j;

    /**//////打開Word////////

[1] [2] [3] [4] [5] 下一頁

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved