ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:231.54KB ,
资源ID:1278879      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1278879.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VC 2010操作Word2010.docx)为本站会员(滴答)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

VC 2010操作Word2010.docx

1、环境: win7+vs2010+office2010/2013 1、 创建 MFC 工程,非 Unicode。 2、 添加 Word 的类库 添加所有的接口,可以作为一个文件夹,以后再使用只要加入该文件夹就可以了。 由于函数命名冲突,需要在生成的头文件 中 做相应处理,即: /#import “C:Program FilesMicrosoft OfficeOffice14MSWORD.OLB“ no_namespace #import “C:Program FilesMicrosoft OfficeOffice14MSWORD.OLB“ no_namespace raw_interfaces_

2、only rename(“FindText“, “_FindText“) rename(“Rectangle“, “_Rectangle“) rename(“ExitWindows“, “_ExitWindows“) 对于不同版本的 office,其默认的类型库位置如下表所示: Office 版本 路径 Office 2003 C:Program FilesMicrosoft OfficeOffice11 Office 2007 C:Program FilesMicrosoft OfficeOffice12 Office 2010 C:Program FilesMicrosoft Office

3、Office14 Office 2013 C:Program FilesMicrosoft OfficeOffice15 特别的, word2013 在 vc2010 下必须手动指定类型库文件位置。 3、 在 stdafx 中添加调用的 头文件 #include “Word2010/CApplication.h“ / word程序对象 #include “Word2010/CDocuments.h“ / 文档集对象 #include “Word2010/CDocument0.h“ / 单个 docx对象 #include “Word2010/CSelection.h“ / 该对象代表窗口或窗格

4、中的当前所选内容,使用率最高 #include “Word2010/CCell.h“ / 表格单元格 #include “Word2010/CCells.h“ / 表格单元格集合 #include “Word2010/CRange.h“ / 该对象代表文档中的一个连续范围 #include “Word2010/CTable0.h“ / 单个表格 #include “Word2010/CTables0.h“ / 表格集合 #include “Word2010/CFont0.h“ / 字体 #include “Word2010/CParagraphs.h“ / 段落集合 #include “Wor

5、d2010/CParagraphFormat.h“ / 段落样式 #include “Word2010/CParagraph.h“ / 单个段落 #include “Word2010/CnlineShape.h“ / Inline图形对象集合 #include “Word2010/CnlineShapes.h“ / 单个 Inline图像对象 #include “Word2010/CRow.h“ / 单个行 #include “Word2010/CRows.h“ / 行集合 #include “Word2010/CFields.h“ #include “Word2010/CPane0.h“ /

6、 页眉等设置 #include “Word2010/CWindow0.h“/ 页眉等设置 #include “Word2010/CView0.h“/ 页眉等设置 #include “Word2010/CPageSetup.h“ / 页面设置 4、 注销每个引入的头文件的 import 行 /#import “C:Program FilesMicrosoft OfficeOffice14MSWORD.OLB“ no_namespace 不过 如果使用 wdMove等参数的话, 只需要在 CApplication.h文件中 改为 : /#import “C:Program FilesMicroso

7、ft OfficeOffice14MSWORD.OLB“ no_namespace #import “C:Program FilesMicrosoft OfficeOffice14MSWORD.OLB“ no_namespace raw_interfaces_only rename(“FindText“, “_FindText“) rename(“Rectangle“, “_Rectangle“) rename(“ExitWindows“, “_ExitWindows“) 否则, 如果没有上面一段,则报错提示为 (即全部头文件都注销 import的情况下 ) : 但是上述的方法会带来一个问题,

8、就是当 word版本改变时会出现问题, 解决办法就是上述报错的变量都用其数值代替就 不会有问题了 (写代码时可以加上用以查看 wdMove等变量的值) ,如下面一些: wdAlignParagraphLeft = 0 wdAlignParagraphCenter = 1 wdAlignParagraphRight = 2 wdAlignParagraphJustify = 3 wdParagraph = 4 wdMove = 0 wdStyleHeading1 = -2 wdStory = 6 页面纵向 wdOrientPortrait=0 页面横向 wdOrientLandscape=1 e

9、num WdUnits wdCharacter = 1, / 字母 wdWord = 2, / 单词 wdSentence = 3, / 句子 wdParagraph = 4, / 段落 wdLine = 5, / 行 wdStory = 6, / 所选区域 wdScreen = 7, / 当前屏幕 wdSection = 8, / 部分 wdColumn = 9, / 列 wdRow = 10, / 行 wdWindow = 11, / 窗口 wdCell = 12, / 单元格 wdCharacterFormatting = 13, / 字体格式 wdParagraphFormatting

10、 = 14, / 段落格式 wdTable = 15, / 表格 wdItem = 16 / 项目 ; 具体可以参考手册或者通过 VBA代码查看。 5、到 CXXXApp.cpp 文件中找到 InitInstance 函数 添加代码: / 例如修改为公司或组织名 SetRegistryKey(_T(“应用程序向导生成的本地应用程序 “); if ( !AfxOleInit() ) AfxMessageBox(_T(“无法初始化 COM的动态链接库! “); return FALSE; 这一步可以通过在创建 MFC工程时,勾选 “自动化 ”。 6、 具体代码 添加按钮,在按钮 中实现 : voi

11、d CVCForWordDlg:OnBnClickedButton1() / TODO: 在此添加控件通知处理程序代码 COleVariant covZero(short)0), covTrue(short)TRUE), covFalse(short)FALSE), covOptional(long)DISP_E_PARAMNOTFOUND, VT_ERROR), covDocxType(short)0); / 定义 word变量 CApplication wordApp; / wordApp CDocuments docxs; / docxs CDocument0 docx, docx_ac

12、tive; / docx if ( !wordApp.CreateDispatch(_T(“Word.Application“) ) / 实例化 wordApp,必须有初始化 AfxMessageBox(_T(“本机没有安装 word产品! “); return; else wordApp.put_Visible(FALSE); / 设置文档开始不可见 CString wordVersion = wordApp.get_Version(); / 获得当前 word的版本,比如word2010为 14.0,2013为 15.0 / * 添加一个 document * / 得到 docxs doc

13、xs = wordApp.get_Documents(); / 或者下面一段 / = /LPDISPATCH disp = wordApp.get_Documents(); /if ( NULL = disp ) / return;/ FALSE; /docxs.AttachDispatch(disp); /if ( NULL = docxs.m_lpDispatch ) / return;/ FALSE; / = / 添加一个 docx docx = docxs.Add(covOptional, covOptional, covOptional, covOptional); / 未用模板时,

14、或者下面段两种 / = / 2,未用模板 /docx.AttachDispatch(docxs.Add(covOptional, covOptional, covOptional, covOptional); / 3,使用模板 /CComVariant tpl(_T(“), Visble, DocxType(0), NewTemplate(false); /docx = docxs.Add( / = if ( NULL = docx.m_lpDispatch ) return; / * 设置页边距 * / 放在创建文档后,需要 CPageSetup.h docx_active = wordAp

15、p.get_ActiveDocument(); CPageSetup oPageSetup = docx_active.get_PageSetup(); / 设置为页面方向和页边距 if ( oPageSetup.get_Orientation() = 0 ) / 若为纵向则设置为横向, 纵向wdOrientPortrait=0,横向 wdOrientLandscape=1 oPageSetup.put_Orientation(1); / 横向 / 设置上下左右变距,单位缇,以下参数设置的页边距是 “适中 ” oPageSetup.put_TopMargin( (float) 72); / 适

16、中时 72=2.54cm,默认时90=3.17cm; 100.35cm oPageSetup.put_BottomMargin( (float) 72); / 适中时 72=2.54cm,默认时90=3.17cm; 100.35cm oPageSetup.put_LeftMargin( (float) 54); / 适中时 54=1.9cm,默认时72=2.54cm oPageSetup.put_RightMargin( (float) 54); / 适中时 54=1.9cm,默认时72=2.54cm /else / 设置为纵向 / / oPageSetup.put_Orientation(0

17、); / / 设置上下左右变距,单位缇,以下参数设置的页边距是 “适中 ” / oPageSetup.put_TopMargin( (float) 72); / 适中时 72=2.54cm,默认或普通时72=2.54cm; 100.35cm / oPageSetup.put_BottomMargin( (float) 72); / 适中时 72=2.54cm,默认或普通时72=2.54cm; 100.35cm / oPageSetup.put_LeftMargin( (float) 54); / 适中时 54=1.9cm,默认或普通时90=3.17cm / oPageSetup.put_Rig

18、htMargin( (float) 54); / 适中时 54=1.9cm,默认或普通时90=3.17cm / / 声明一个 CSelection对象,并实例化 CSelection wordSelection = wordApp.get_Selection(); / * 设置文档内容 * wordSelection.TypeText(_T(“虚拟试验仿真报表 “); wordSelection.HomeKey(COleVariant(short)5), COleVariant(short)1); / wdLine=5,返回当前行首,并选择当前行 wordSelection.put_Style

19、( COleVariant(short)-2) );/ 设置为 “标题 1“样式,wdStyleHeading1=-2 / 设置选择区域字体,一定要放在样式后,否则格式会被样式的覆盖 CFont0 font = wordSelection.get_Font(); font.put_Name(_T(“微软雅黑 “); font.put_Size(16); / 必须选择该行才可以修改,即必须有 HomeKey那行 / 获得当前段落,并设置对齐方式 CParagraph lastPara = GetCurParagraph(docx); lastPara.put_Alignment(1); / wd

20、AlignParagraphLeft=0, wdAlignParagraphCenter=1,wdAlignParagraphRight=2 / 结束当前段落编辑,移动光标到段落后 wordSelection.EndOf(COleVariant(short)4), COleVariant(short)0); / wdParagraph=4,wdMove=0 wordSelection.TypeParagraph(); / 新起一段 COleVariant covTime(_T(“yyyy-MM-dd:dddd“); / 时间格式可调整 wordSelection.InsertDateTime(

21、covTime, covFalse, covOptional, covOptional, covOptional); / 插入当前时间 wordSelection.EndOf(COleVariant(short)4), COleVariant(short)0); / 结束当前段落编辑, wdParagraph=4, wdMove=0 / 生成表格 MakeRTITable( docx, wordSelection ); / 以下为为不同段落 设置不同字体和对齐方式示例 wordSelection.TypeParagraph(); / 新起一段 wordSelection.TypeText(_T

22、(“end of the story!“); wordSelection.HomeKey(COleVariant(short)5), COleVariant(short)1); / wdLine=5,返回当前行首,并选择当前行 /*CFont0 */font = wordSelection.get_Font(); font.put_Size(20); / 必须选择该行才可以修改,即必须有 HomeKey那行 /*CParagraph */lastPara = GetCurParagraph(docx); lastPara.put_Alignment(3); / 右对齐 wordSelectio

23、n.EndOf(COleVariant(short)4), COleVariant(short)0); / 结束当前段落编辑, wdParagraph=4, wdMove=0 wordSelection.TypeParagraph(); / 新起一段 wordSelection.TypeText(_T(“Thanks for reading!“); wordSelection.HomeKey(COleVariant(short)5), COleVariant(short)1); / wdLine=5,返回当前行首,并选择当前行 /*CFont0 */font = wordSelection.g

24、et_Font(); font.put_Size(10); / 必须选择该行才可以修改,即必须有 HomeKey那行 font.put_Name(_T(“Times New Roman“); /*CParagraph */lastPara = GetCurParagraph(docx); lastPara.put_Alignment(1); / 居中对齐 wordSelection.EndOf(COleVariant(short)4), COleVariant(short)0); / 结束当前段落编辑, wdParagraph=4, wdMove=0 / 插入分页符,用于换页 wordSele

25、ction.InsertBreak(covOptional); / 插入公式,操作域 CFields fields = wordSelection.get_Fields(); COleVariant ofont = _variant_t(_T(“Times New Roman“); COleVariant text = _variant_t(_T(“EQ a ar co2 vs3 hs3(Axy,Bxy,A,B)“); / 注意要两个 ,一个转义后不对! fields.Add( wordSelection.get_Range(), covOptional, text, covFalse );

26、wordSelection.HomeKey(COleVariant(short)5), COleVariant(short)1); / wdLine=5,返回当前行首,并选择当前行 lastPara = GetCurParagraph(docx); lastPara.put_Alignment(0); / 左对齐 wordSelection.EndOf(COleVariant(short)4), COleVariant(short)0); / 结束当前段落编辑, wdParagraph=4, wdMove=0 / 获取应用当前 Debug路径 char fileNameMAX_PATH; Ge

27、tModuleFileName(NULL, fileName, MAX_PATH); char dir260; char dirver100; _splitpath(fileName, dirver, dir, NULL, NULL); CString strAppPath = dirver; strAppPath += dir; /CString strAppPath = _T(“D:“); / * 插入图片示例 * / 需要 CWindow0.h, CPane0.h, CView0.h wordSelection.TypeParagraph(); / 另起一段 CString strPicture = strAppPath + _T(“截图 .jpg“); CnlineShapes nLineShapes = wordSelection.get_InlineShapes(); CnlineShape nLineshape = nLineShapes.AddPicture(strPicture, covFalse, covTrue, covOptional);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。