惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
Recent Announcements
Recent Announcements
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
A
About on SuperTechFans
Vercel News
Vercel News
博客园 - 【当耐特】
爱范儿
爱范儿
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
D
Docker
博客园 - 叶小钗
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
H
Help Net Security
I
InfoQ
博客园 - 三生石上(FineUI控件)
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
The GitHub Blog
The GitHub Blog
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - 张尹

Windows管道技术简述 内核printf源代码分析 获得控制台程序的输出 简单封装的一个彩色进度条 C语言编程技巧汇萃(包含大量实用函数) 一个编程函数集(包含大量C实用函数) MD5算法说明及源码 C51 怎样将1个子程序段定位在1个固定的地址位置? 动态真彩工具栏 一个实用的 CToolBar 扩展类 CToolBarEx 一步步制作真彩工具条 [转载精品]C++程序员经常问的11个问题 关于CRichEditCtrl中文字颜色的控制 如何制作Windows自定义边框的对话框 MFC下窗口分割和文字输出的实现 让ListBox控件支持拖动 VC通用控件编程之CSlider控件 CListCtrl使用详解 一个不错的算法
如何在控制台程序中读取WORD文档的内容? - 张尹 - 博客园
张尹 · 2007-03-04 · via 博客园 - 张尹

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包装类  
 
4.加入代码  

int  _tmain(int  argc,  TCHAR*  argv[],  TCHAR*  envp[])  
{  
    
int  nRetCode  =  0;  
    
    
if  (!AfxWinInit(::GetModuleHandle(NULL),  NULL,  ::GetCommandLine(),  0))  
    
{  
        cerr  
<<  _T("Fatal  Error:  MFC  initialization  failed")  <<  endl;  
        nRetCode  
=  1;  
    }
  
    
else  
    
{  
        
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("d:\\txt.doc"),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);  
        aRange
=doc.Range(vOpt,vOpt);  
        
        AfxMessageBox(aRange.GetText());
//这里GetText得到的就是word文件的纯文本了,你可以将其写到txt文件中  
        
        doc.Close(vOpt,vOpt,vOpt);  
        wordApp.Quit(vOpt,vOpt,vOpt);  
        
        
        
        CoUninitialize();  
    }
  
    
    
return  nRetCode;  
}