C、C++如何调用windows api来操作office组件
希望使用C、C++如何调用windows api来操作office组件,抽取数据和转换,不需要图形界面,不使用mfc下的类库
[解决办法]
google一下嘛
[解决办法]
windows api调用不了office组件,只能调用与office公用的组件比如mapi,毕竟是两套软件
[解决办法]
vba,宏
[解决办法]
Office的API是COM……调用Office的API就好了
[解决办法]
顶楼上。微软为Office套件均设计提供了COM接口,COM接口不同于一般的API,会稍微复杂一点。
如果用脚本语言的话,操作起来会更简单一些。
[解决办法]
http://www.7880.com/Info/Article-55560220.html
[解决办法]
com接口操作
[解决办法]
对于不同的OFFICE有不同的COM 这要看你是操作WORD 还是EXCEL了
[解决办法]
UP
[解决办法]
如何在控制台程序中读取WORD文档的内容?
1.在VC中新建一控制台程序,选支持MFC(当然,你也可以不选择支持MFC的,不过会很麻烦)
2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库(例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),选择完毕后,在弹出的窗口中选择要让classwizard生成的包装类,在本例中要用到_Application,Documents,_Document,Range这四个类,选中他们后按OK
3.进入你的main函数所在的cpp文件,加入头文件引用
#include "msword.h" //引用刚才classwizard生成的idispatch包装类
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){ int nRetCode = 0; // initialize MFC and print and error on failure if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // TODO: change error code to suit your needs cerr << _T("Fatal Error: MFC initialization failed") << endl; nRetCode = 1; } else { // TODO: code your application's behavior here. CString strHello; strHello.LoadString(IDS_HELLO); cout << (LPCTSTR)strHello << endl; if(CoInitialize(NULL) != S_OK) { AfxMessageBox("初始化com库失败"); return -1; } _Application wordapp; Documents docs; _Document doc; Range aRange; COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); wordapp.CreateDispatch("Word.application",NULL); wordapp.SetVisible(false); docs = wordapp.GetDocuments(); doc=docs.Open(COleVariant("F:\\data\\test.doc"),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt); aRange=doc.Range(vOpt,vOpt); // AfxMessageBox(aRange.GetText()); printf("%s",aRange.GetText()); doc.Close(vOpt,vOpt,vOpt); wordapp.Quit(vOpt,vOpt,vOpt); CoUninitialize(); } return nRetCode;}
[解决办法]
代码怎么变成一行了?csdn这方面真糟糕……
<?phprequire_once 'F:\xampp\php\PEAR\Spreadsheet\Excel\Writer.php';$word=new COM("word.application") or die("Cannot start Microsoft Word"); $word->Documents->Open("d:/t12.doc",0,1); if($word->Documents[1]->Paragraphs[1]->Range->Font->Name=="黑体")echo "第一段字体改为‘楷体_GB2312’正确\n"; else echo "第一段字体改为‘楷体_GB2312’错误\n"; if($word->Documents[1]->Paragraphs[2]->Range->Font->Size==14)echo "第二段字体改为14号正确\n"; else echo "第二段字体改为14号错误\n"; //Paragraphs[2]->Range->Font->Size = 14 echo $word->Documents[1]->Paragraphs[1]->Range->Font->Name;echo "\n"; echo $word->Documents[1]->Paragraphs[1]->Range->Font->Color;echo "\n"; echo $word->Documents[1]->Paragraphs[1]->Range->Font->Size;echo "\n"; echo $word->Documents[1]->Paragraphs[1]->Range->Font->Bold;echo "\n"; echo $word->Documents[1]->Paragraphs[1]->Range->Font->Underline;echo "\n"; echo $word->Documents[1]->Paragraphs[1]->Range->ParagraphFormat->Alignment;echo "\n"; $word->Quit(); $word = null; ?>
[解决办法]