以前導出數據的時候都是自己定義格式,自己來解析,或者直接導出到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] 下一頁