vc++ 调用Word 实现转换格式

此前VB做过这程序,只是格式不一样。之前是做Word->Html

现在是Word->Txt 。

不熟悉VC 弄得我比较磨蹭。

 

HandleWord.h
#pragma  once

class  HandleWord
{
public :
    HandleWord(
void );
    HandleWord(
const   char *  fileName);
    
~ HandleWord( void );

private :
    
const   char *  FileName;
public :
    
void  TransFormToTxt();
};

 

 

 

.cpp

 这其中SaveAs的变量与VB较之复杂。其参数COleVariant 也弄晕了我。--->Union类型 可变类型。

 

#include  " stdafx.h "
#include 
" HandleWord.h "

#include 
" msword.h "

HandleWord::HandleWord()
{

}

HandleWord::HandleWord(
const   char *  fileName)
{
    FileName
= fileName;
}

HandleWord::
~ HandleWord()
{

}

void  HandleWord::TransFormToTxt()
{
    
    _Application WordApp;
    CoInitialize(NULL);
    
if ( ! WordApp.CreateDispatch( " Word.Application " ,NULL))
    {
        
// AfxMessageBox("创建Word服务失败!");
        exit( 1 );
        
return ;
    }
    
    WordApp.SetVisible(TRUE);
    
    
    COleVariant vTrue((
short )TRUE),vFalse(( short )FALSE),vOpt(( long )DISP_E_PARAMNOTFOUND, VT_ERROR);

    Documents docs
= WordApp.GetDocuments();
    docs.Open(COleVariant(FileName),
        vFalse,vFalse,vFalse,COleVariant(
"" ),COleVariant( "" ),
        vFalse,COleVariant(
"" ),COleVariant( "" ),
        COleVariant((
short ) 0 ),COleVariant( " UTF-8 " )
        ,vTrue,vFalse,COleVariant((
short ) 0 ),vFalse,
        COleVariant(
"" ));


    _Document active_doc; 
    active_doc 
=  WordApp.GetActiveDocument();

    active_doc.SaveAs(COleVariant(
" D:\\12.txt " ), 
        COleVariant((
short ) 2 ),
        vFalse, COleVariant(
"" ),vFalse, COleVariant( "" ),
        vFalse,vTrue,vFalse,vFalse,vFalse,COleVariant(
" 936 " ), // COleVariant(L"UTF-8")
        vFalse,vFalse,COleVariant(( short ) 0 ),vFalse);

    
    WordApp.Quit(vOpt, vOpt, vOpt);
    
}

 

 

其中的msword.hmsword.cpp 根据不同Word版本似乎不同。这个可以下载。

 

 解释下:

active_doc.SaveAs(COleVariant( " D:\\12.txt " ), 
        COleVariant((
short ) 2 ),....

 

COleVariant(( short ) 2 ) 是类型,需要自己看msdn ,不过最好还是按照msdn弄个Enum,或者弄个#define txt 2 也好点。

COleVariant("936")是Encoding。(技巧的确如vckbase所言,用宏录制,看其VB代码,再翻译成VC)

其余参数msdn之。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值