vc6.0调用excel xp,word 2k

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

#include <ole2.h>

#include <stdio.h>

#pragma warning (disable:4146 4192 4786 4081)

#define USE_OFFICEXP 1

#ifdef USE_OFFICEXP

#import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL"

#import "c:\\Program Files\\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.olb"

#import "c:\Program Files\Microsoft Office\Office10\MSWORD.olb" rename("ExitWindows","ExitWindowsEx")

#import "c:\Program Files\Microsoft Office\Office10\excel.exe" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture")

#else

#import "c:\Program Files\Microsoft Office\Office\MSO9.dll"

#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" no_namespace

#import "c:\Program Files\Microsoft Office\Office\MSWORD9.OLB" rename("ExitWindows","_ExitWindows")

#import "c:\Program Files\Microsoft Office\Office\excel9.olb" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture")

#endif

int main(int argc, char* argv[])

{

VARIANT varItem;

varItem.vt = VT_I4;

varItem.intVal = 1;

::CoInitialize(NULL);

CLSID clsid;

#if 0

CLSIDFromProgID(L"Word.Application", &clsid);

Word::_ApplicationPtr pApp;

pApp.CreateInstance (clsid,NULL);

pApp ->PutVisible (VARIANT_TRUE);

pApp ->GetDocuments() ->Add();

Word::_DocumentPtr pWordDocument =pApp-> GetActiveDocument();

Word::SelectionPtr pSelection = pApp ->GetSelection();

pSelection ->TypeText("badguy");

#endif

#if 1

CLSIDFromProgID(L"Excel.Application", &clsid);

Excel::_ApplicationPtr pApp;

pApp .CreateInstance (clsid,NULL);

pApp ->PutVisible (0,VARIANT_TRUE);

Excel::_WorkbookPtr pWorkbook = pApp ->GetWorkbooks () ->Add ();

Excel::_WorksheetPtr pSheet = pWorkbook ->GetWorksheets () ->GetItem (varItem);

Excel::RangePtr pRange = pSheet ->GetUsedRange(0);

int iColCnt = pRange ->GetColumns() ->GetCount();

printf("used columns is %d\n",iColCnt);

int iRowCnt = pRange ->GetRows() ->GetCount();

printf("used rows is %d\n",iRowCnt);

pRange = pSheet ->GetRange(OLESTR("A1"));

pRange ->Value2 = OLESTR("SOME");

Excel::InteriorPtr pInterior= pRange ->GetInterior ();

varItem.intVal = 0xff0000;

pInterior ->PutColor (varItem);

pSheet ->PrintPreview ();

#endif

::CoUninitialize();

return 0;

}

好久没回复贴子,今天看到一个excel的问题。于是写了一下。写完了再保存。顺便发一下。这可是原创的哈。好想有三颗星星了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航