qq_34325858 2022-02-13 23:19 采纳率: 83.3%
浏览 48
已结题

代码怎么实现去修改world里面字体格式

哪个语言都可以,除了字体格式,怎么自动创建表格

  • 写回答

3条回答 默认 最新

  • 赵4老师 2022-02-14 08:47
    关注

    仅供参考:

    //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.加入代码
    // console_word.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "console_word.h"
    #include "msword.h"
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    
    /////////////////////////////////////////////////////////////////////////////
    // The one and only application object
    
    CWinApp theApp;
    
    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
            printf(_T("Fatal Error: MFC initialization failed!\n"));
            nRetCode = 1;
        }
        else
        {
            // TODO: code your application's behavior here.
            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);
            CString       txt;
    
            wordApp.CreateDispatch("Word.Application",NULL);
            wordApp.SetVisible(FALSE);
                docs=wordApp.GetDocuments();
                    doc=docs.Open(COleVariant("c:\\new\\测试.doc"),vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);
                        aRange=doc.Range(vOpt,vOpt);
                            txt=aRange.GetText();
                            AfxMessageBox(txt);//这里GetText得到的就是word文件的纯文本了,你可以将其写到txt文件中
                            printf("[%s]\n",txt.GetBuffer(txt.GetLength()));//里面的换行不是\r\n而是\r,所以需要输出重定向到文本文件看结果。
                        aRange.ReleaseDispatch();
                    doc.Close(vOpt,vOpt,vOpt);
                    doc.ReleaseDispatch();
                docs.ReleaseDispatch();
            wordApp.Quit(vOpt,vOpt,vOpt);
            wordApp.ReleaseDispatch();
    
            CoUninitialize();
        }
    
        return nRetCode;
    }
    
    
    
    
    

    在Word中开始记录宏,手动完成所需功能,结束记录宏,按Alt+F11键,查看刚才记录的宏对应的VBA代码。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 已采纳回答 2月14日
  • 创建了问题 2月13日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效