【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

【C++简单写Word】(四) 整理及反思

原创 2016年08月31日 13:55:18

在学习用代码操作Word的时候真是遇到了许许多多的困难啊,不过好歹一一克服了。
我要将我这段时间的所学整理成笔记。
在如何初始化Word或者Excel上,网络上有很多详细的教程我就不在啰嗦了。

不过如果无法初始化Application时,问题一般出在忘记添加

    if (!AfxOleInit())
    {
        AfxMessageBox(_T("初始化OLE出错"));
        return;
    }

无论是写VBA或者写调用的时候有许许多多的函数,我们并不太清楚这个函数的作用,这个时候我们可以参考MSDN或者看WPS表格功能树


传递的参数有两种写法

一
    CComVariant Template(_T(""));
    CComVariant NewTemplate(false);
    CComVariant DocumentType(0);
    CComVariant的构造参数会自动识别传递类型
    传递该引用即可,如 &Template
二
    COleVariant((short)10);
    COleVariant(_T(""));
    使用这种方法时需要加入该类型

在写VBA时有许多可选参数,而在代码部分可选参数也是必须填上的,这个时候可以使用

COleVariant VarOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);  // 默认参数

向传递VarOpt这个值即可,在我们不太清楚函数要调用的是什么参数的时候也可以传递该参数。


有些参数需要特殊化处理,比如

LPDISPATCH AddOLEObject(VARIANT * ClassType, VARIANT * FileName, VARIANT * LinkToFile, VARIANT * DisplayAsIcon, VARIANT * IconFileName, VARIANT * IconIndex, VARIANT * IconLabel, VARIANT * Range)
该函数的最后一项是要求传入一个Range的指针进去,如果我们希望当我们输出时是按照先输出一段文字,再输出表格或者图表的话,Range就需要特殊化处理。
Range.SetRange(Selection.get_End(), Selection.get_End());
CComVariant range(Range);
最后传递&range

当我们使用Document.SaveAs(VARIANT * FileName,……)该函数保存的时候保存的文件格式只能是.doc,如果是.ocx程序就会崩溃,这个我不太理解是为什么,如果有知道的希望能告诉我下。


如果要在写Word的时候输出图表,那么久需要加入Excel的支持文件,就是把生成图表之后的指针交给Excel中的workbook,这样就可以直接写数据了

    Range.SetRange(Selection.get_End(), Selection.get_End());
    CComVariant range(Range);
    Shape = Shapes.AddOLEObject(COleVariant(L"Excel.Chart"), VarOpt, VarOpt, VarOpt, VarOpt, VarOpt, VarOpt, &range);
    OLEFormat = Shape.get_OLEFormat();
    CWorkbook workbook = OLEFormat.get_Object();

大概就是这些了,如果有什么问题欢迎大家和我讨论。如果哪块有问题,我也希望大家能帮我指正出来,我会一一改正。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

【C++简单写Word】(三) 基本操作的实现

我实现了一些较为简单的功能:比如输出文本信息,将其格式化,输出表格数据,以及绘画柱状图的功能ToWord.h#pragma once #include "CApplication.h" #includ...

【C++简单写Word】(一)概念了解

这些都是我在学习的时候看到的一些基础概念。均来源于百度百科 Component Object Model(COM——组件对象模型) 组件对象模型,一种面向对象的编程模式。它定义了对象在单个应用程序...

程序员 大牛 面试

水 滴 石 穿 -- 找工作记 -- yurking(yurking@gmail.com) 一日一钱,千日千钱,绳锯木断,水滴石穿! <s
  • mmdev
  • mmdev
  • 2012-01-22 09:53
  • 280

关于c++的专业描述

程序员 大牛 面试

水 滴 石 穿 -- 找工作记 -- yurking(yurking@gmail.com) 一日一钱,千日千钱,绳锯木断,水滴石穿! <s

【转载】北大信科人对新生的答疑帖(信息科学类专业咨询)——爆全

这是我不知从哪个地方找到的一个帖子,是北大信息科学的前人为新生准备的答疑帖,一个进入北大信科的新生看完这个帖子后,可以对整个大学学术生活有个全面详细的认识。这也是为什么本文如此之强大。里面不仅介绍了有...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)