我做過類似的工作,在Windows 及 C/C++的API中沒有可以
直接寫WORD格式的函數.我也在VB中調用OFFICE提供的vba的方
法做成需要的函數.然後寫成DLL供VC調用.
    還有一個辦法就是自己去寫WORD的格式,但比較複雜,資料又少.

解决方案 »

  1.   

    可以用VC直接调用WORD啊 我以前公司每天要写日志 所以我写了一个程序自动生成日志 呵呵
      

  2.   

    HRESULT              hr;
    CString FileName,LoadFile,SaveFile,SaveFileName,Temp1;
    CHAR      FilePath[255];
    // BSTR TEMP1;
    VARIANT     Temp;
    COleVariant  TEMP2;
    CTime NowTime;
    hr=CoInitialize(NULL);
    // TEMP1="E:\\练习\\OFFICE\\OpenOffice\\12月6日工作日志.doc";
    // wcscat((BSTR)TEMP1,OLESTR("\\开发人员工作日志模板.dot"));

    Word::_ApplicationPtr MyOffice("Word.Application.9");
    ::GetCurrentDirectory(255,FilePath); 
    FileName.Format("%s",FilePath); 
    LoadFile=FileName+"\\开发人员工作日志模板.dot";
    TEMP2=(COleVariant)LoadFile;
    Temp=TEMP2.Detach(); 
    if (MyOffice) {
    // hr=MyOffice->Documents->Open(&Temp); 
    hr=MyOffice->Documents->Add(&Temp);
    //hr=MyOffice->ActiveDocument->Activate();
    //hr=MyOffice->ActiveWindow->put_Visible(VARIANT_BOOL(TRUE)); //显示word窗口
    //这中间你可以添加其他你要处理的功能
    if(FAILED(hr))
    {
    ::AfxMessageBox("文件打开显示错误");
    MyOffice->Quit();
    }
    NowTime=CTime::GetCurrentTime();  
    Temp1=NowTime.Format("%m月%d") ; 
    SaveFileName=Temp1+"日工作日志.doc";  
    SaveFile=FileName+"\\"+SaveFileName;
    TEMP2.Clear(); 
    TEMP2=(COleVariant)SaveFile;
    Temp=TEMP2.Detach(); 
    TEMP2.Clear();
    hr=MyOffice->ActiveDocument->SaveAs(&Temp);  
    // hr=MyOffice->Documents->Save(&Temp); //错误原因:保存文件如果是Documents是全保存 所以应该使用ActiveDocument
    if(FAILED(hr))
    {
    ::AfxMessageBox("文件保存失败");
    MyOffice->ActiveWindow->put_Visible(VARIANT_BOOL(TRUE));
    }
    ::AfxMessageBox("文件保存成功!");
    MyOffice->Quit();
    }
    // MyOffice->Quit();
    // MyOffice->Release(); 
    return 0;