• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 请问在vc中如何通过程序在word文当中插入表格,以及在表格的特定位置中写入字符?

请问在vc中如何通过程序在word文当中插入表格,以及在表格的特定位置中写入字符?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 请问在vc中如何通过程序在word文当中插入表格,以及在表格的特定位置中写入字符?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请问在vc中如何通过程序在word文当中插入表格,以及在表格的特定位置中写入字符?
描述:

请问在vc中如何通过程序在word文当中插入表格,以及在表格的特定位置中写入字符


解决方案1:

首先,用ClassWizard添加word vba类库,Add Class-->From a type library,从office安装目录“c:\program files\Microsoft office\office”中选择MSWORD9.OLB,然后选择所有类,完成后,ClassWizard会自动添加Msword9.h,Msword9.cpp两个文件。
然后,在程序文件中#include "msword9.h",在你的函数中添加如下代码:
         COleVariant vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
_Application WordApp;
if (!WordApp.CreateDispatch("Word.Application",NULL)) 
{ 
AfxMessageBox("创建MS-WORD服务失败!"); 
exit(1); 
} ;
WordApp.SetVisible(TRUE);
Documents oDocs;
oDocs = WordApp.GetDocuments();
_Document oDoc;
oDoc = oDocs.Add(vOpt, vOpt, vOpt, COleVariant((short)true));
oDoc.Activate();
Range oRange;
Selection oSelection;
oSelection = WordApp.GetSelection();
oRange = oSelection.GetRange();
Tables oTables;
Table oTable;
oTables = oDoc.GetTables();
oTable = oTables.Add(oRange, 2, 2, COleVariant((short)1), COleVariant((short)0));//第二、第三个参数:2,2,表示建立2×2表格
Cell  oCell;
oCell = oTable.Cell(0, 0);//选择第一行,第一列所在的单元格
oRange = oCell.GetRange();
oRange.SetText("12345");

解决方案2:


void CReportDemoDlg::OnStartword() 
{
Table table;
Tables tables;
if (!WordApp.CreateDispatch("Word.Application",NULL)) 
{ 
AfxMessageBox("创建MS-WORD服务失败!"); 
exit(1); 
} ;
WordApp.SetVisible(true);
docs=WordApp.GetDocuments(); 
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
COleVariant start_line,end_line;
COleVariant Dot("c:\\test.dot");
//使用test.dot作为模板建立新文档
doc=docs.Add(&Dot,&covOptional);
//获得DOC文档的书签集
bootmarks=doc.GetBookmarks();
//第一到三列的的书签名分别是rol1、rol2、rol3
COleVariant tem1("rol1");
bootmark=bootmarks.Item(&tem1);
range=bootmark.GetRange();
//设置列标题
range.SetText("列标题1");
COleVariant tem2("rol2");
bootmark=bootmarks.Item(&tem2);
range=bootmark.GetRange();
range.SetText("列标题2");
COleVariant tem3("rol3");
bootmark=bootmarks.Item(&tem3);
range=bootmark.GetRange();
range.SetText("列标题3");
//设置报表报送时间
COleVariant tem4("time");
bootmark=bootmarks.Item(&tem4);
range=bootmark.GetRange();
range.SetText("2002年1月1日");
//设置单元格内容
tables=doc.GetTables();
table=tables.Item(1);
Cell cell;
for(int i=2;i<=9;i++)
{
for(int ii=1;ii<=3;ii++)
{
cell=table.Cell(i,ii);
range=cell.GetRange();
range.SetText("????");
}
}
}
//进行打印预
void CReportDemoDlg::OnPrintpreview() 
{
//如果没有DOC文档打开
if(docs.m_lpDispatch==NULL)
{
AfxMessageBox("尚未输出报表到WORD,无法进行打印预览");
return;
}
else
{
if(!WordApp.GetPrintPreview())
//开始打开预览
WordApp.SetPrintPreview(1);
else
WordApp.SetPrintPreview(0);
}
}
//向打印机输出报表
void CReportDemoDlg::OnPrint() 
{
if(docs.m_lpDispatch==NULL)
{
AfxMessageBox("无报表可供打印!");
return;
}
else
{
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//直接向打印机输出报表
doc.PrintOut(covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional,
covOptional,covOptional,covOptional,
covOptional,covOptional);
}
}
//保存报表文档
void CReportDemoDlg::OnSaveAs() 
{
if(docs.m_lpDispatch==NULL)
{
AfxMessageBox("尚未输出报表到WORD,无法保存");
return;
}
else
{
OPENFILENAME ofn;
TCHAR   lpstrFilename[MAX_PATH] = "";
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = m_hWnd;
ofn.lpstrFilter ="Microsoft Word文档(.doc)\0*.doc\0";
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFile=lpstrFilename;
ofn.hInstance=AfxGetInstanceHandle();
ofn.Flags=OFN_EXPLORER;
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//出现“另存为”对话框
if(GetSaveFileName( &ofn)==IDOK)
{
CString sFile =ofn.lpstrFile;
try
{
doc.SaveAs(COleVariant(sFile),
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional,
covOptional);
}
catch(COleException *e)
{
LPVOID lpMsg;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
FORMAT_MESSAGE_FROM_SYSTEM | 
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, e->m_sc,
MAKELANGID(LANG_NEUTRAL, 
SUBLANG_DEFAULT),(LPTSTR) &lpMsg,
0, NULL);
::MessageBox(NULL, (LPCTSTR)lpMsg, "COM Error", 
MB_OK | MB_SETFOREGROUND);
::LocalFree( lpMsg );
}
catch(COleDispatchException *e)
{
char msg[512];
sprintf(msg, "程序运行出错'%d',系统提示信息为:\n\n%s", 
e->m_scError & 0x0000FFFF, e->m_strDescription);
::MessageBox(NULL, msg, "无法保存文件", 
MB_OK | MB_SETFOREGROUND);      
}
//退出
COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);
WordApp.Quit(COleVariant((short)true), vOpt, vOpt);
}
}
}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请问在vc中如何通过程序在word文当中插入表格,以及在表格的特定位置中写入字符
  • 请问在vc中如何通过程序在word文当中插入表格,以及在表格的特定位置中写入字符?

相关文章

  • 2017-06-05 向高手请教关于CreateRemoteThread远程创建线程问题
  • 2017-06-04 MFCActiveX控件中封装了doc-view结构,VIEW为SCROLLVIEW,在网页上刚打开时滚动代码无效?
  • 2017-06-05 送500分!奇怪的在dll里面连接sqlserver数据库的问题
  • 2017-06-04 谈谈你是怎么学习com的,小弟我最近看书看得很郁闷
  • 2017-06-05 鼠标HOOK的问题
  • 2017-06-05 关于隐藏进程的问题__过年大送分<2>
  • 2017-06-04 招人VC++编程开发~~3人(成都)
  • 2017-06-05 请问如何关掉一个应用程序及其所有的线程。
  • 2017-06-05 请问怎样在我的程序里打开和关闭另一个程序???
  • 2017-06-04 只剩下20分了,问一个简单的问题吧

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 超级怪事:向线程传递结构体参数,结构却无法展开
    • 关于VS2005的bug
    • 如何在VC中控制打开的IE不显示地址栏
    • 对话框中显示二维数组数据,象个excel表格那样的,可以插入,删除,修改用什么控件好啊?
    • 急急急!!WORD中用程序添加鼠标右键菜单项
    • 关于辅助线程的问题(江湖救急)
    • 游戏中人物行走控制
    • 郁闷!!!散分~~~~~~~~~~~``
    • 一个包含Com组件的dll,是运行在容器程序的地址空间里面,还是Com管理器的地址空间里面?
    • RichEdit控件保存图片问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有