跪求对WORD文档中的本文框、复选框、组合框和选项按钮等对象进行操作的方法?

Spring414 2003-10-20 01:07:25
就是用程序启动Word打开指定格式的文档,用户对那些特定的对象操作,存盘后用程序取出那些对象修改后的值存入数据库;也可以从数据库打开指定的值。即打开文档有两种状态:新建和查看。能不能把Word文档直接镶到程序界面里进行操作?

谢了!
...全文
1251 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sncel 2003-11-26
  • 打赏
  • 举报
回复
我也来广告,使用SnOLEContainer 1.1

http://www.sncelsoft.com/products.htm
pzoon 2003-11-26
  • 打赏
  • 举报
回复
MARK
ljianq 2003-11-26
  • 打赏
  • 举报
回复
mark
farfly 2003-11-26
  • 打赏
  • 举报
回复
可以尝试采用第三方控件,例如办公之星控件,她提供三百多个接口,可指定每个对象的读写状态

软件名称:办公之星控件(OStarOCX)
软件版本:V1.02
更新日期:2003.9.18
运行环境:Win9x/2000/Nt/xp
支持语言:VC/VB/PB/Dephi/ASP/JSP
界面语言:简体中文
授权方式:试用软件
软件大小:1036KB
官方网址:http://www.standsoft.com
电子信箱:lxz@oapro.com
软件作者:深圳智岛软件有限公司
演示工程下载:http://www.oapro.com/ostarocx/download_demo.asp
在线演示:http://www.oapro.com/ostarocx/product_demo.asp
控件简介:

办公之星控件(OStarOCX)是智岛软件公司(http://www.standsoft.com)推出的一款基于图文混排的文档处理控件(类似Word的控件),办公之星控件(OStarOCX)完全封装了办公之星的文字、图形、表格、图表等功能,提供了几百个编程接口;在ERP、CRM、HR、OA等系统里,开发难度非常大的文档处理、统计、报表等输出功能都可由办公之星控件(OStarOCX)轻松实现,其所见即所得的效果跟现实里的完全一样。办公之星控件(OStarOCX)适用于Windows环境的各种开发工具(如VB,VC,Delphi,C+Builder, PB, Java等), 并且针对Web开发环境做了大量的优化。
fanfyj 2003-10-22
  • 打赏
  • 举报
回复
up
zz997788 2003-10-22
  • 打赏
  • 举报
回复
这个问题我也很想知道,关注!关注!
pepsi1980 2003-10-22
  • 打赏
  • 举报
回复
VC有几篇文章讲这个的.BCB的还没见过.转一个帖子过来看看,希望有帮助.

在VC中调用WORD(显示,修改,存盘,运行宏)
(1)使用AppWizard创建一个新的MFC AppWizard(EXE)工程,命名为"office"
(2)选择单文档视图(SDI)结构,在第3步中需要选中Container,以提供容器支持,并且选中active document container 其它都为默认

(3)在View菜单中,选ClassWizard,选Automation选项卡,选Add Class,选择From a TypeLibrary, 在Office目录中选中Microsoft Word 97/2000 类型库Word8.olb或Word9.olb,选中application,document,_document。单击ok

(4)给COfficeCntrItem添加一方法。GetIDispatch()

其源码如下:

ASSERT_VALID(this);
ASSERT(m_lpObject != NULL);
LPUNKNOWN lpUnk = m_lpObject;
Run();
LPOLELINK lpOleLink = NULL;
if (m_lpObject->QueryInterface(IID_IOleLink, (LPVOID FAR*)&lpOleLink) == NOERROR)
{
ASSERT(lpOleLink != NULL);
lpUnk = NULL;
if (lpOleLink->GetBoundSource(&lpUnk) != NOERROR)
{
TRACE0("Warning: Link is not connected!\n");
lpOleLink->Release();
return NULL;
}
ASSERT(lpUnk != NULL);
}
LPDISPATCH lpDispatch = NULL;
if (lpUnk->QueryInterface(IID_IDispatch, (LPVOID FAR*)&lpDispatch)!=NOERROR)
{
TRACE0("Warning: does not support IDispatch!\n");
return NULL;

}
ASSERT(lpDispatch != NULL);
return lpDispatch;
(5)。在officeView.h添加#include "msword8.h"

(6)。修改void COfficeView::OnInsertObject(),源码如下:

BeginWaitCursor();

COfficeCntrItem* pItem = NULL;
TRY
{
// Create new item connected to this document.
COfficeDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pItem = new COfficeCntrItem(pDoc);
ASSERT_VALID(pItem);

// Initialize the item from the dialog data.
/* if (!dlg.CreateItem(pItem))
AfxThrowMemoryException(); // any exception will do
ASSERT_VALID(pItem);*/
CLSID clsid; //
if(FAILED(::CLSIDFromProgID(L"Word.document",&clsid)))
AfxThrowMemoryException();

if(!pItem->CreateNewItem(clsid))
/*if(!pItem->CreateFromFile (filename,clsid)) */
AfxThrowMemoryException();
ASSERT_VALID(pItem);

pItem->Activate (OLEIVERB_SHOW,this);
在VC中调用WORD(显示,修改,存盘,运行宏)之二去掉word的常用,格式工具栏

在View菜单中,选ClassWizard,选Automation选项卡,选Add Class,选择From a TypeLibrary, 在Office目录中选中Microsoft Word 97/2000 类型库MSO9.DLL,选中_CommandBars,CommandBar。单击ok

在officeView.h添加#include "mso9.h"

添加方法:

int CQsofficeView::hidetoolbar(BOOL hide)
{
TRY{
LPDISPATCH lpDisp;
lpDisp = m_pSelection->GetIDispatch();
Documents docs;
_Application app;
_Document mydoc;
_CommandBars mybars;
CommandBar mybar;
mydoc.AttachDispatch (lpDisp,TRUE);
app=mydoc.GetApplication ();
mydoc.Activate ();

mybars.AttachDispatch (mydoc.GetCommandBars (),TRUE);
mybar.AttachDispatch (mybars.GetItem (COleVariant(/*(short)1)*/"Standard")),TRUE);
mybar.SetVisible (hide);
mybar.AttachDispatch (mybars.GetItem (COleVariant(/*(short)2*/"Formatting")),TRUE);
mybar.SetVisible (hide);
CMDIFrameWnd * pwnd=(CMDIFrameWnd *)AfxGetMainWnd();
pwnd->GetActiveFrame ()->UpdateWindow ();

}
CATCH(CException, e)
{
TCHAR errormsg[255];
e->GetErrorMessage (errormsg,255,NULL);
}
END_CATCH
return 0;
}

bulid,insert object后,便可以调用hidetoolbar了。

我的经验:先用WORD的宏录制功能录制好宏后,选择工具下宏下VB编辑器看它的源码然后再根据msword.h和mso*.h的相应类来实现。

在VC中调用WORD(显示,修改,存盘,运行宏)一在这儿。

http://www.csdn.net/develop/article/10/10570.shtm

我想有人也许跟我一样在走许多弯路,把我的method呈现出来希望能对他们有所帮助。:)
swites 2003-10-22
  • 打赏
  • 举报
回复
xx!
Spring414 2003-10-20
  • 打赏
  • 举报
回复
具体?
ccrun.com 2003-10-20
  • 打赏
  • 举报
回复
"Word文档直接镶到程序界面里进行操作"
这个用OleContainer可以办到。

至于"对WORD文档中的本文框、复选框、组合框和选项按钮等对象进行操作"
在Word里录制一个宏,然后察看其源代码,做适当修改就可以在BCB中调用。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧