VC操纵WORD文档详解

合集下载

vc操作Word

vc操作Word

vc操作Word1、如何用VC将word表格中插入一行Tables tbs=doc.GetTables();Table tb;Rows rs;tb=tbs.Item(1);//取第一个表格rs=tb.GetRows();COleVariantcovOptional((long)DISP_E_PARAMNOTFOUNT,VT_ERRPR);//最主要是这句,实在太感谢了rs.Add(covOptional);//增加一行2、设置字体的样式和字体大小Range wordRange= wordDoc.Range(&varOptional, &varOptional);Selection wordSelec = wordApp.GetSelection();_Font oFont;_ParagraphFormat wordFormat;//////////////设置标题////////////////////////////////////////wordSelec.HomeKey(&varUnit, &varOptional);oFont = wordSelec.GetFont();oFont.SetSize(15);oFont.SetName("黑体");wordFormat = wordSelec.GetParagraphFormat();wordFormat.SetAlignment(1);wordSelec.InsertAfter("力学试验机实验报告");wordSelec.InsertParagraphAfter();wordSelec.EndKey(&varUnit, &varOptional);////////////标题设置完毕/////////////////////////////////////3、在word 中插入表格Range rng;Tables tabs;Table tab;Selection sSel;_Document sDoc;先获得word文档对象,然后就可以对其进行操作了rng =sSel.GetRange();tabs.Add(rng,3,9,vOne,vTwo);//绘制3行9列表格tabs = sDoc.GetTables();tab = tabs.Item(2);for(int i=0;i<9;i++)向表格的第一行的每一个格中添加数据{cel = tab.Cell(1,i+1);rng = cel.GetRange();rng.SetText("长度");}4、过以标签的方式向word写数据Documents oDocs;_Document oDoc;Windows oWindows;Window oWindow;COleVariant tem1,m_olevariant(short(1),VT_I2); COleVariant m_variant1,m_variant2;oWordApp.SetVisible(true);/*******************通过标签设置数据**********************/ Bookmarks bookmarks;Bookmark bookmark;Range range;m_pathname = "c:\\报告样式.doc";COleVariant dot(m_pathname);oDocs=oWordApp.GetDocuments();oWindows=oWordApp.GetWindows();oDoc=oDocs.Add(&dot,&vOpt,m_variant1,m_variant2);oWordApp.Activate();bookmarks=oDoc.GetBookmarks();oWindow=oWindows.Item(m_olevariant);//设置标题tem1.SetString("CompanyName",VT_BSTR);bookmark=bookmarks.Item(&tem1);range=bookmark.GetRange();oWindow.ScrollIntoView(range,&m_olevariant);//要滚动视图是用这句吗?range.SetText("中国四方利通");5、用vc将图片插入word的指定位置下代码,但它总是将图片插在文档的最开始,我在文档中设置了标签“test”,请问怎样将图片插入word中指定的位置?Selection oSel;oSel = oWordApp.GetSelection();InlineShapes shps;//插入图片到指定的位置shps=oSel.GetInlineShapes();shps.AddPicture("C:\\1.jpg",vFalse,vTrue,vOpt);你必须先获得插入位置的range对象,然后addpicture的最后一个参数用range对象替换,就可以了怎样取某doc文档里的第一段和最后一段的内容Paragraphs pg;pg.GetFirst();//取第一段pg.GetLast();。

VC_应用开发中如何对Word文档进行页面设置

VC_应用开发中如何对Word文档进行页面设置

可以试试对其他的格式进行设置。
(作者: 梁海珍 王华)
Delphi 下如何实现窗口在最小化恢复时进行身份验证
如果数据保密性高, 一般应用程序设有密码登录窗口, 在 进入系统前需要验证用户是否是授权用户。 当授权用户离开计算 机几分钟时间内, 如果不想让其他人员偷偷使用程序, 一种简 单的办法是退出应用程序, 等回来后再重新登录。 但是假设用 户正在进行数据录入工作, 而且已经录入一半数据, 这时退出 程序先前的工作就白干了。 那还有没有其他更简单的办法呢?
应用程序在正常启动运行后, Windows 会 自 动 在 任 务 栏 上 创建一个程序按钮, 方便用户在多个应用程序之间切换。 单击 程序按钮时, 如果程序的窗口处于显示状态, 窗口会自动隐藏 到任务栏中。 当再次单击程序按钮时, 隐藏的程序窗口又会自 动恢复到初始显示状态。 那能不能通过编程实现: 当程序窗口 从任务栏恢复前进行身份验证, 验证成功则恢复隐藏的窗口, 验证失败则继续隐藏程序窗口呢?
// 声明用到的 word 中的类对象
_Application Wordapp;
Documents WordDocs;
_Document WordDoc,DocActive;
PageSetup Pagesetup;
// 页面设置对象
(3) 在 IDD_MYPAGE_DIALOG 对 话 框 界 面 中 添 加 控 件 及
“宏” 的录制功能, 把所想宏代码, 虽然这些代码都是用 VB 写 的 , 但 可 以 清 楚 看
出要使用哪些类、 哪些成员函 数 。 每 一 个 Microsoft Office 应 用
程序都在 dll 文件中提供了多种类型库资源, 这种 dll 文件叫做

VC操作Word系列

VC操作Word系列

VC操作Word系列(一)近曰作一个小东西涉及到对汇总结果的打印,由于打印只在一台特定的机器进行所以考虑使用Word来实现,这样比较简单而且很专业。

开始的时候这个东西没有这项功能后来我闲的无聊看看是否可以实现(以前从来没有做过这方面的东西),于是乎搞了一下也不是很难,一点心得大家给指点一二,使用的是Office2000,工程类型是MFC 的对话框。

先看看需要使用到的东东:1.View->ClassWizard->Automation->Add Class From Library:定位到你安装Office的目录找到MSWord9.Olb 2.打开后把所有的类都选中倒入到你的工程(反正也是搞一回彻底一点:P) 3.在你的对话框头文件中加上#include"msword9.h" OK了准备工作搞定之后就可以玩儿转Word了,先来一个简单的void TestWord1(){Application app;COleVariant vTrue((short)TRUE), vFalse((short)FALSE);app.CreateDispatch(_T("Word.Application"));app.SetVisible(FALSE);//Create New DocDocuments docs=app.GetDocuments();CComVarianttpl(_T("")),Visble,DocType(0),NewTemplate(false);docs.Add(&tpl,&NewTemplate,&DocType,&Visble);//Add Content:TextSelection sel=app.GetSelection();sel.TypeText(_T("\t\t\t\t\t第一次玩儿Word\r\n")); sel.TypeText(_T("\t\t\t\t\t\t\t\t----------先来一个简单的\r\n"));sel.ReleaseDispatch();docs.ReleaseDispatch();app.SetVisible(TRUE);app.ReleaseDispatch();}f:\App\CtrlWord\CtrlWord.h(11): fatal error C1083: 无法打开包含文件:“MSWord9.h”: No such file or directory上面的错误已解决,在环境中,不需要加入msowrd9.h,而只要加入用到.h文件就可以了,例子中要加入#include "CApplication.h" //test#include "CDocuments.h" //test#include "CSelection.h" //testVC操作Word系列(二)大家都应该使用过Word提供的表格功能很是专业,如果在作一些数据库开发之类的软件对汇总的数据进行打印是常见的功能,这个如果用Word来实现个人感觉不错,废话少说说练咱就练。

C#操作WORD文档超详细使用方法总结

C#操作WORD文档超详细使用方法总结

C#操作Word的超详细总结本文中用C#来操作Word,包括:创建Word;插入文字,选择文字,编辑文字的字号、粗细、颜色、下划线等;设置段落的首行缩进、行距;设置页面页边距和纸张大小;设置页眉、页码;插入图片,设置图片宽高以及给图片添加标题;插入表格,格式化表格,往表格中插入数据;保存Word,打印Word;重新打开Word等。

Visual studio版本:Visual Studio 2012(2010应该也可以)准备工作:/*1. 添加引用COM里面的Microsoft Word 12.0 Object. Library 引用(12.0表示Word 2007版本)2. 导命名空间using MSWord =Microsoft.Office.Interop.Word;using System.IO;using System.Reflection;3. 把引用中的Microsoft.Office.Interop.Word的“属性”中的嵌入互操作设为False */以下是全部代码:(代码有点长,但请不要有压力,直接复制进去就能直接成功运行)1using System;2using System.Collections.Generic;3using System.Linq;4using System.Runtime.InteropServices;5using System.Text;6using MSWord = Microsoft.Office.Interop.Word;7using System.IO;8using System.Reflection;910namespace Console_WordSkill_All11 {12class Program13 {14static void Main(string[] args)15 {16object path; //文件路径变量17string strContent; //文本内容变量18 MSWord.Application wordApp; //Word 应用程序变量19 MSWord.Document wordDoc; //Word文档变量2021 path = Environment.CurrentDirectory +"\\MyWord_Print.doc";22 wordApp = new MSWord.ApplicationClass(); //初始化2324 wordApp.Visible = true;//使文档可见2526//如果已存在,则删除27if (File.Exists((string)path))28 {29 File.Delete((string)path);30 }3132//由于使用的是COM库,因此有许多变量需要用Missing.Value代替33 Object Nothing = Missing.Value;34 wordDoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);3536#region页面设置、页眉图片和文字设置,最后跳出页眉设置 3738//页面设置39 wordDoc.PageSetup.PaperSize =MSWord.WdPaperSize.wdPaperA4;//设置纸张样式为A4纸40 wordDoc.PageSetup.Orientation =MSWord.WdOrientation.wdOrientPortrait;//排列方式为垂直方向41 wordDoc.PageSetup.TopMargin = 57.0f;42 wordDoc.PageSetup.BottomMargin = 57.0f;43 wordDoc.PageSetup.LeftMargin = 57.0f;44 wordDoc.PageSetup.RightMargin = 57.0f;45 wordDoc.PageSetup.HeaderDistance = 30.0f;//页眉位置 4647//设置页眉48 wordApp.ActiveWindow.View.Type =MSWord.WdViewType.wdNormalView;//普通视图(即页面视图)样式49 wordApp.ActiveWindow.View.SeekView =MSWord.WdSeekView.wdSeekPrimaryHeader;//进入页眉设置,其中页眉边距在页面设置中已完成50 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphRight;//页眉中的文字右对齐515253//插入页眉图片(测试结果图片未插入成功)54 wordApp.Selection.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter;55string headerfile =@"C:\Users\xiahui\Desktop\OficeProgram\3.jpg";56 MSWord.InlineShape shape1 =wordApp.ActiveWindow.ActivePane.Selection.InlineShapes.AddPicture(hea derfile, ref Nothing, ref Nothing, ref Nothing);57 shape1.Height = 5;//强行设置貌似无效,图片没有按设置的缩放——图片的比例并没有改变。

VC 中操作word

VC 中操作word

VC 中操作word 第一步在函数InitInstance() 中加入如下代码1.如果是word 2003if ( CoInitialize(NULL) !=0 ){AfxMessageBox("初始化COM支持库失败");exit(1);}如下图如果是word 2007 ,加入如下代码:if(TRUE != AfxOleInit()){AfxMessageBox("初始化COM支持库失败");exit(1);}如下图第二步3.打开ClassWizard—Add Class—From a type library,选择本机word8.OLB文件(最好先查找一下该文件,word2000为Word9.0LB,office2007 为MSWORD.OLB 一般在安装目录Microsoft Office\Office12 下)。

选择Application、Documents、Document、Window、View 、Range、Bookmarks、Bookmark、Fields、FieId加入新类、头文件word.h、源文件word.cpp。

如下图经过以上的添加后,在系统的存放代码文件的目录下会多出两个文件msword.cpp msword.h。

同时在VC 环境下查看类会发现多出了刚才添加的word里面的一些类,如下图所示打开对应的头文件,在文件的头部添加:#include "comdef.h"#include <AtlBase.h>#include <windows.h>第三步设计模板,准备一个word的模板,即*.dot格式的word文件,可以用word自己创建一个。

在word中用户随意设计好报表的格式,并在相应需要程序修改的位置插入书签,书签用于将程序中想要输出变量的值带入模板中,模板中的书签名字一定要与程序中的一致,笔者建议将程序中变量的名字做为书签。

VC菜单命令详解(文件打开、保存与关闭)

VC菜单命令详解(文件打开、保存与关闭)
3.ID_FILE_SAVE CDocument::OnFileSave 调用 CDocument::DoFileSave()。 | CDocument::OnFileSave 判 断 文 件 是 否 只 读 , 是 则 DoSave(NULL) , 否 则 DoSave(m_strPathName)。 | CDocument::DoSave(LPCTSTR lpszPathName,BOOL bReplace=TRUE)的流程为:1,判断 lpszPathName 不空 则跳第二步,为空则获取文档的路径名,加上扩展符。bReplace 为 TRUE 则显示保存文件 对话框(AFX_IDS_ SAVEFILE) , 否 则 显 示 拷 贝 保 存 对 话 框 (AFX_IDS+SAVEFILECOPY) 。 2 , 调 用 CDocument::OnSaveDocument 保 存文档。3,若 bReplace==TRUE 则 SetPathName(newName)覆盖当前路径名。 | CDocument::OnSaveDocument 打 开 文 件 , 创 建 CArchive 对 象 saveArchive , Serialize(saveArchive)读写 文件,SetModifiedFlag(FALSE)。
ID_FILE_OPEN CWinApp::OnFileOpen() {
CDocManager::OnFileOpen() {
CDocManager::DoPromptFileName() {
CFileDialog::DoModal(); } CWinApp::OpenDocumentFile() {
对于 MDI,与 SDI 基本相同,但是没有第 3 步。 | CDocument::OnNewDocument() 首 先 调 用 DeleteContents() 删 除 原 文 档 内 容 , 使 用 m_strPathName.Empty() 清除当前文档路径,SetModifiedFlag(FALSE)。

VC中进行office编程的-操作word

VC中进行office编程的-操作word

VC中进行office编程的-操作word,可以设置文字的样式,新建表格,这里提供给大家一个类--CWzjWordOffice::CWzjOffice类,用来对WORD进行简单的操作。

正文大家先看一下CWzjWordOffice类怎么使用CWzjWordOffice wd; //定义一个操作word的对象wd.Create(); //创建一个word应用程序增加一个文档wd.SetFont(25,"魏碑",RGB(128, 0, 0)); //设置字体(字号,字体名,颜色)wd.SetFont(1,0,0); //设置字体为粗体,不是斜体,没有下划线wd.SetParaphformat(1); //设置文字为居中对齐wd.WriteText("软件工程成绩"); //写文字wd.m_wdSel.TypeParagraph(); //回车换行//设置表格字体wd.SetFont(9,"宋体");wd.SetFont(0,0,0);wd.CreateTable(2,4); //创建一个2行4列的表格wd.WriteCellText(1,1,"学号"); //往1行1列单元写“学号”wd.WriteCellText(1,2,"姓名"); //往1行2列单元写“姓名”wd.WriteCellText(1,3,"年龄"); //...wd.WriteCellText(1,4,"省份");wd.WriteCellText(2,1,"23020723");wd.WriteCellText(2,2,"汪自军");wd.WriteCellText(2,3,"25");wd.WriteCellText(2,4,"湖北");wd.ShowApp(); //显示word后面是效果图。

vc操作office

vc操作office

vc操作office下面是从CSDN上摘抄过来的,主要是今天调试VC操作Word2003的时候,网上下载的是操作Word 2000,但是参数已经有一些不同了。

下面的代码可以在2003中运行,记录在这里便于以后复习用。

感谢您使用微软产品。

对于您所提的问题,确实可以使用OLE Automation在VC++中对Word Object Model进行操作。

下面这篇知识库文章中给出了如何在VC_++中引入Office TypeLib,并通过程序启动MS Excel.参照这篇文章可以使您建立起程序的框架Q178749 HOWTO: Create Automation Project Using MFC and a Type Library /doc/b96834780.html,/support/kb/articles/q178/7/49.asp以下两篇知识库文章给出了具体的样例,如何操作Word和Excel. 您可以使用其中的方法来完成你自己的操作。

具体的对象模型的操作,您需要参见对应产品的VBA帮助文档。

Q178784 HOWTO: Use Automation to Open and Print a Word Document /doc/b96834780.html,/support/kb/articles/q178/7/84.aspQ179706 HOWTO: Use MFC to Automate Excel and Create/Format a New Workboo/doc/b96834780.html,/support/kb/art icles/q179/7/06.asp这两篇是介绍一些基础的知识以及Office 产品在Automation 上的一些支持以及常见问题。

您可以用作参考。

Q238972 INFO: Using Visual C++ to Automate Office/doc/b96834780.html,/support/kb/articles/q238/9/72.aspQ196776 FAQ: Office Automation Using Visual C++/doc/b96834780.html,/support/kb/art icles/q196/7/76.asp此外,我在以下列出了Q178784中的样例代码,并添加了一些中文注释。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.打开VC
2.单击File->New
3. 在Projects标签下选择MFC AppWizard(exe),在右边Project name中填好项目名称:VcToWord,单击OK
4.在MFC AppWizard – Step 1中,选中单选框Dialog based,单击Finish
5.在New Project Information对话框中单击OK
6.删除VcToWord对话框上多余按钮和文本,添加一个按钮,ID改为IDC_GEN_WORD,Caption改为“生成WORD”
7.双击该按钮,弹出以下对话框,单击OK
8.得到以下代码
9.按下快捷键Ctrl+W,弹出MFC ClassWizard对话框,单击Add Class…,选择From a type library…,弹出Import from Type Library对话框,找到你OFFICE软件的安装文件夹(默认是在C盘的Program Files中),在其中找到MSWORD.OLB,单击打开
10.在Confirm Classes中按下Ctrl键选中_Application,Documents,_Document,InlineShapes 和Selection,单击OK
11.再次单击MFC ClassWizard对话框中的OK,可以看到多了以下几个类
12.在VcToWord.cpp的头部添加#include "msword.h"
13.在VcToWordDlg.cpp的头部添加#include "msword.h"
14.在CvcToWordApp类在InitInstance函数里添加以下几行代码
15.由于IDP_OLE_INIT_FAILED未定义,故需在Resource.h中定义如下
16.回到OnGenWord函数,在其中添加如下代码
17.记得将本文件夹下的csdn.bmp图片复制到C盘的根目录中
17.编译链接运行程序,单击“生成WORD”,在C盘根目录中得到VcToWord.doc
18.打开VcToWord.doc
完毕!!!。

相关文档
最新文档