VC 创建WORD ,合并单元格,插入图片.

用VC向Word中插入图片的方法  VC++6.0向Word文件的指定位置上插入一张图片,需要用到nlineShapes类型的AddPicture方法。在MSDN中,该方法的声明如下: ************************************************************************** 在文档中添加一幅图片。返回一个 Shape 对象,该对象代表图片,并将 阅读详情

今天做了一个输出报表的模块,要用程序输出到WORD中,在网上找了半天,大多是VB代码,杂而且乱,尤其是合并单元格,几乎找不到有用的信息。所幸最终还是写了出来,拿来和大家分享一下,也可以少走些弯路。

 

一。 打开类向导->ClassInfo->Add class->From a type library 

      

        在WORD的安装目录下,找到msword.olb  加入以下类

      

_Application (word 实例)

Documents

_Document

Range

Tables

Table

Cells

Cell

Columns

Column

Selection         

InlineShapes   (用于插入图片)

 

 

 

二,代码实现。

#define  ERROR_CREATEFAIL 1
#define  ERROR_WRITEFAIL 2
#ifndef  ERROR_SUCESS
#define  ERROR_SUCESS  0
#endif

 

 

int MakeReport( LPCTSTR strFileName, LPCTSTR strImageName)
{
 
 COleVariant vTrue((short)TRUE), vFalse((short)false), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
 _Application oWordApp;
 if(!oWordApp.CreateDispatch("Word.Application", NULL))
 {
  return ERROR_CREATEFAIL;
 }
 Documents oDocs;
 _Document oDoc;
 Range  wordRange;
 Tables  tables;
 Table  table;
 Cells  wordCells;
 Cell  wordCell;
 Columns  wordColumns;
 Column  wordColumn;
 
 try{

  oDocs = oWordApp.GetDocuments();
  oDoc = oDocs.Add(vOpt, vOpt, vOpt, vOpt);
  Selection oSel;
  oSel = oWordApp.GetSelection();
  tables = oDoc.GetTables();
  wordRange = oSel.GetRange();

  // 创建表格
  table = tables.Add(wordRange, 3, 10, vOpt, vOpt);
  table.SetAllowAutoFit(false);
  wordColumns = table.GetColumns();

  // 合并第一列
  wordColumn = wordColumns.Item(1);
  wordColumn.SetWidth(100);
  wordCells = wordColumn.GetCells();
  wordCells.Merge();
  wordRange.SetOrientation(1);
  wordCells.SetVerticalAlignment(1);
  wordRange.SetText("第一列");    

  // 合并三组标题
  /* ------------------------------- */
  wordCell = table.Cell(1, 2);
  wordRange = wordCell.GetRange();
  wordRange.SetText("A");  
  int iStart = wordRange.GetStart();
  wordCell = table.Cell(1, 4);                  
  wordRange = wordCell.GetRange();
  int iEnd = wordRange.GetEnd();
  wordRange.SetStart(iStart);
  wordRange.SetEnd(iEnd);
  wordCells = wordRange.GetCells();
  wordCells.Merge();


  wordCell = table.Cell(1, 3);                     //第二次合并时,前边已经只有两列了,所以从第三列开始
  wordRange = wordCell.GetRange();
  wordRange.SetText("B");
  iStart = wordRange.GetStart();
  wordCell = table.Cell(1, 5);
  wordRange = wordCell.GetRange();
  iEnd = wordRange.GetEnd();
  wordRange.SetStart(iStart);
  wordRange.SetEnd(iEnd);
  wordCells = wordRange.GetCells();
  wordCells.Merge();


  wordCell = table.Cell(1, 4);
  wordRange = wordCell.GetRange();
  wordRange.SetText("C"); 
  iStart = wordRange.GetStart();
  wordCell = table.Cell(1, 6);
  wordRange = wordCell.GetRange();
  iEnd = wordRange.GetEnd();
  wordRange.SetStart(iStart);
  wordRange.SetEnd(iEnd);
  wordCells = wordRange.GetCells();
  wordCells.Merge();

  /* ------------------------------- */

 

  // 写入数据
   ...

  ///

 

 


  //  插入图片
  Selection sel = oWordApp.GetSelection();
  sel.EndKey(COleVariant((short)6), COleVariant((short)0));
  sel.TypeParagraph();
  wordRange = sel.GetRange();
  InlineShapes iss  = wordRange.GetInlineShapes();
   iss.AddPicture(strImageName, vFalse, vTrue, vOpt);

  _Document oActiveDoc;
  oActiveDoc = oWordApp.GetActiveDocument();


  oActiveDoc.SaveAs(COleVariant(strFileName), COleVariant((short)0),
        vFalse, COleVariant(""), vTrue, COleVariant(""),
      vFalse, vFalse, vFalse, vFalse, vFalse,vFalse,vFalse,vFalse,vFalse,vFalse);
  

 }
 catch(CException *e)
 {
  e->ReportError();
  oWordApp.Quit(vFalse, vFalse, vFalse);
  return ERROR_WRITEFAIL;
 }
 oWordApp.Quit(vOpt, vOpt, vOpt);
 return ERROR_SUCESS;
}

 

 

 

 

计算机操作员(练习题100道) 计算机操作员练习题 阅读详情

相关推荐

VC对word操作,主要包含生成表格,并导入数据,合并单元格,编辑眉页等等

很不错的vc对word操作代码,可以自动生成word表格,并导入数据、合并单元格、编辑眉页等。

MFC对word操作-封装好的类

该类主要是copy的其他人的成果,页码部分由笔者自己查找资料添加。 class _wordClass { public: _wordClass(); ~_wordClass(); public: void ShowApp(BOOL flag); BOOL InitCOM(); ///< 对COM进行初始化 BOOL CreateAPP(); ...

qq_16334327的博客 1697

vc 操作word 绘制表格 合并单元格 填写页眉页脚等等

vc 操作word,包括新建文档,保存文档,写入文字,新建表格,更改表格格式,合并单元格,填写页眉页脚等等。

docx文件转pdf,使用aspose words 转pdf,并且解决表格格式错乱

docx文件转pdf,使用aspose words 转pdf,并且解决表格格式错乱 最近遇到一个问题,需要将数据动态生成pdf文件。于是我毫不犹豫的使用poi,计划先将数据写入docx文件,然后再实现docx文件转pdf。就这样,当天我的docx文件已经生成,并且把各种格式,字体,颜色,表格,表格边距等等属性调整完毕,下一步就是转换pdf了(注:不是摸板信息回填,而是根据程序中表单的格式,内容,审批流程等等信息自动生成docx文件,然后提供线下备份及打印功能等等。。。。。。)。然而,理想是丰满的,现实是骨感

Mr_going的博客 1万+

DCA1000EVM数据采集实战:从mmWave Studio配置到MATLAB后处理的全链路解析

本文详细解析了DCA1000EVM数据采集的全流程,从mmWave Studio配置到MATLAB后处理,涵盖数据存储结构解析、后处理引擎剖析及Python数据处理方案。通过实战案例,帮助开发者高效处理毫米波雷达原始数据,实现从数据到应用价值的转化,提升开发效率。

weixin_33743661的博客 708

FPGA时序约束--实战篇(读懂Vivado时序报告)

本文将详细介绍如何读懂Vivado时序报告,包括报告的基本结构和如何分析报告。

mengzaishenqiu的博客 1万+

【aspose】 word/excel转pdf,实现在线预览文件功能

需求描述:上传附件后,可实现在线预览,这里就会存在一个问题,很多附件的类型是没法在线预览的,点击就会下载。除pdf/jpg/jpeg等,于是技术方案定,将word/excel等类型的文件转成pdf,并且使用nginx代理附件路径,实现预览效果。......

Lee_SmallNorth的博客 1959

扣子Coze工作流教程:采集公众号爆文,一键仿写自动发布

通过本教程,你学会了如何利用扣子(Coze)平台构建一个完整的公众号文章自动处理工作流。这个系统不仅能够大幅提升内容产出效率,还能通过AI二创保持内容新鲜度和原创性。最佳实践建议:初次使用时,建议先保存为草稿而不是直接发布,以便人工审核;从简单的工作流开始,逐步增加复杂度;定期检查工作流运行日志,优化节点配置。自动化内容创作是新媒体运营的未来趋势,掌握这项技能将使你在数字内容领域占据显著优势。

互联网架构师笔记 1238

计算机word试题问答题,计算机一级考试选择题题库之Word题及答案(版).docx

字处理软件Word 2000单选题1. Word 2000文档文件的扩展名默认为doc。A. DOCB. DOTC. TXTD. RTF2. Word 2000程序启动后就自动打开一个名为文档一的文档。A. 无名文件 1B. 文本1C.文档1D.文件13.在 Word 2000 中不能直接被编辑的文件类型是BMP。A. DOCB. RTFC. TXTD. BMP4.在编辑 Word文档时,要...

weixin_36081109的博客 868

史上最详细的sqlmap使用教程

sqlmapsqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等Sqlmap采用了以下5种独特的SQL注入技术基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。

大河之犬的博客 5万+

基于STM32L4XX、HAL库的MP2672GD-0000-Z充电芯片驱动程序设计

CHG_STAT_GPIO_Port, CHG_STAT_Pin, // 这些宏应由 CubeMX 生成在 main.h。

zhusl6688的博客 497

【渝粤教育】电大中专Office办公软件 (1)作业 题库

1.西文字符一般采用的编码是( )。 A.ASCII码 B.BCD码 C.国标码 D.EBCDIC码 正确 正确答案:左边查询 学生答案:A 2.若已知一汉字的国标码是5E38,则其内码是( )。 A.DE38 B.DEB8 C.7E58 D.5EB8 错误 正确答案:左边查询 学生答案:未作答 3.学习好Office办公软件这门课程,应该( )。 A.只看不练 B.重视理论学习 C.重视上机操作,多练多试,还要学习好基础的知识 D.可以随便学习一下 错误 正确答案:左边查询 学生答案:未作答 4

渝粤题库 442

10. 重磅!Spring AI 1.0 正式发布,Java 开发者的 AI神器!

重磅!Spring AI 1.0 正式发布,Java 开发者的 AI神器! 全网最详细的Spring AI 文章,每章都会提供代码入口,让你更容易得入门和理解Spring AI 相关概念,直接节约你百分之六十的学习成本时间。

gorgor在码农 1067

【渝粤教育】电大中专Office办公软件_1作业 题库

1学习好Office办公软件这门课程,应该()。 A重视理论学习 B重视上机操作,多练多试,还要学习好基础的知识 C只看不练 D可以随便学习一下 正确 正确答案:左边查询 学生答案:B 2在使用Office2016时遇到困难,()功能键能够打开帮助并联网搜寻答案。 AF1 BF2 CF3 DF4 正确 正确答案:左边查询 学生答案:A 3以下软件不属于系统软件的是()。 AWindows10 BVisualStudio2019 COffice2016 DMySQL5.7 错误 正确答案:左边查询 学生答案:

渝粤题库 682

Claude Code 源码一夜流出:会看热闹的人很多,会读源码的人很少

摘要:Claude Code源码意外泄露后,作者分享了高效的源码学习方法:1)Fork仓库保存代码;2)使用Qoder的Repo Wiki功能生成结构化文档和UML图;3)基于Wiki创建可复用的Skill。这种方法比直接让AI总结代码更系统深入,并推荐了可视化学习项目辅助理解。文章强调实践的重要性,提供了具体工具和操作指南。

721

基于Simulink的电动汽车电池管理系统热管理优化仿真

电动汽车电池管理系统(Battery Management System, BMS)中的热管理是确保电池性能、安全性和寿命的关键环节。温度过高或过低都会显著影响电池的工作效率和寿命,因此需要对电池组进行精确的热管理。基于MATLAB/Simulink的仿真平台可以用于建模和优化电池热管理系统,包括热分布预测、冷却策略设计以及热平衡控制等。本项目旨在构建一个完整的电动汽车电池热管理优化仿真模型,并通过仿真验证系统的性能。

xiaoheshang_123的博客 462

【渝粤教育】电大中专Office办公软件 (2)_1作业 题库

1学习好Office办公软件这门课程,应该()。 A重视理论学习 B重视上机操作,多练多试,还要学习好基础的知识 C只看不练 D可以随便学习一下 正确 正确答案:左边查询 学生答案:B 2在使用Office2016时遇到困难,()功能键能够打开帮助并联网搜寻答案。 AF1 BF2 CF3 DF4 正确 正确答案:左边查询 学生答案:A 3以下软件不属于系统软件的是()。 AWindows10 BVisualStudio2019 COffice2016 DMySQL5.7 错误 正确答案:左边查询 学生答案:

渝粤题库 635

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【渝粤教育】电大中专Office办公软件 (14)作业 题库

1学习好Office办公软件这门课程,应该()。 A重视理论学习 B重视上机操作,多练多试,还要学习好基础的知识 C只看不练 D可以随便学习一下 正确 正确答案:左边查询 学生答案:B 2在使用Office2016时遇到困难,()功能键能够打开帮助并联网搜寻答案。 AF1 BF2 CF3 DF4 正确 正确答案:左边查询 学生答案:A 3以下软件不属于系统软件的是()。 AWindows10 BVisualStudio2019 COffice2016 DMySQL5.7 错误 正确答案:左边查询 学生答案:

渝粤题库 638

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【渝粤教育】电大中专Office办公软件 (15)作业 题库

1学习好Office办公软件这门课程,应该()。 A重视理论学习 B重视上机操作,多练多试,还要学习好基础的知识 C只看不练 D可以随便学习一下 正确 正确答案:左边查询 学生答案:B 2在使用Office2016时遇到困难,()功能键能够打开帮助并联网搜寻答案。 AF1 BF2 CF3 DF4 正确 正确答案:左边查询 学生答案:A 3以下软件不属于系统软件的是()。 AWindows10 BVisualStudio2019 COffice2016 DMySQL5.7 错误 正确答案:左边查询 学生答案:

渝粤题库 978

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 超级黑客
下一篇: 论控件在窗口的自适应
华亭真人
博客等级 码龄18年 74粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值