如何用delphi的OLEContainer操控MS Word?

grjs2004 2007-03-11 12:24:21
在网上搜了一些资料,但都觉得很零乱,也没有找到很好方法,请给出好的完整解决方法来,最好有成功的代码例子,重分酬谢!


在delphi 7里用OLEContainer控件连接好MS Word后,Word工具栏的[文件]部分不见了,我是用自己加的Menu控件设置了[文件]部分,但是就要对它进行写[新建]、[打开]、[保存]、[另存]、[页面设置]、[打印]及[打印预览]等部分,我已经做好了[保存]和[打开]部分,其他部分还没有做出来。请高手不吝赐教,谢谢!

还有希望跟数据库连接在一起,作出来的文档可以保存在数据库里,也可以从数据库里调出来编辑等。

谢谢!
很紧迫的问题,希望今天晚上10点之前有圆满的回复。

如果觉得分太少,我可以另开贴给分,但是只要你做出来就给分!
谢谢关注!!!
...全文
2958 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
luquansen 2011-08-31
  • 打赏
  • 举报
回复
来收藏!!
okmnji79513 2008-12-01
  • 打赏
  • 举报
回复
收藏,好东西
yuandll 2008-09-18
  • 打赏
  • 举报
回复
收藏了,好东西啊
grjs2004 2007-04-02
  • 打赏
  • 举报
回复
虽然还没有很好的解决方法,
但是我还是要揭贴了!

谢谢各位的帮助!

以后还需要继续努力!
grjs2004 2007-03-31
  • 打赏
  • 举报
回复
想做一个类型WORD的编辑器,可以做成数据感知控件,直接跟数据库相关联!

不知道谁可以做到!

deansroom 2007-03-28
  • 打赏
  • 举报
回复
呵呵
关注一下,顶起来,都来灌水!~
grjs2004 2007-03-28
  • 打赏
  • 举报
回复
希望有这方面经验的来灌水!

明天揭贴!

谢谢!
zzd8310 2007-03-22
  • 打赏
  • 举报
回复
同意楼上
kongfancheng 2007-03-22
  • 打赏
  • 举报
回复
这恐怕你得问它的原作者了。得到李维FireBird论坛上问。
grjs2004 2007-03-22
  • 打赏
  • 举报
回复
kongfancheng()

你好!
那个源码需要一些第三方控件,也请公布一下控件和下载网址
谢谢!
grjs2004 2007-03-20
  • 打赏
  • 举报
回复
谢谢关注!
请继续帮顶!
说出你的建议和想法!
谢谢!
仙侣步惊云 2007-03-19
  • 打赏
  • 举报
回复
在文档中搜索字符串
OleContainer1.OleObject.Application.ActiveWindow.ActivePane.view.Zoom.Percentage:=85//调整显示比例;
//查找待搜索的字符
OleContainer1.OleObject.Application.Selection.find.ClearFormatting;
OleContainer1.OleObject.Application.Selection.find.Text:=widestring(KeyStr);
OleContainer1.OleObject.Application.Selection.find.Forward:=True;
OleContainer1.OleObject.Application.Selection.find.Wrap:= 1;
OleContainer1.OleObject.Application.Selection.find.Execute ;
grjs2004 2007-03-19
  • 打赏
  • 举报
回复
请不要见怪!
我是想再看看还有没有高手出来发表见解!

你的分是少不了的!

谢谢
kongfancheng 2007-03-18
  • 打赏
  • 举报
回复
我提供的连源代码都有,难道还不够吗?如果我不告诉你,你也不知道有这个东西啊!
grjs2004 2007-03-18
  • 打赏
  • 举报
回复
谢谢关注!

请有更好的建议的人士也参与,说出你的见解!

谢谢!
kongfancheng 2007-03-17
  • 打赏
  • 举报
回复
这是一个完整的基于OLE的Word文档管理系统。有了它,你什么问题都不用问了。
kongfancheng 2007-03-17
  • 打赏
  • 举报
回复
我向你推荐一个写好了的例子:
http://www.firebird.net.cn/down_view.asp?id=213
袖珍文档管理系统源码,是李维论坛IB斑竹的杰作:
http://liwei.csdn.net/Forum/board.aspx?boardid=12
noelse520 2007-03-17
  • 打赏
  • 举报
回复
关注,帮顶~!
fjx99 2007-03-14
  • 打赏
  • 举报
回复
如果要使用事件,则由于Servers面板中的控件已经导入好事件定义,因此可以
var
myExcelApplication : TExcelApplication;
myExcelWorkBook : TExcelWorkBook;
myExcelWorkSheet : TExcelWorkSheet;
begin
myExcelApplication.Connect();
myExcelApplication.Visible[0] := true;
myExcelWorkBook.ConnectTo(myExcelApplication.Workbooks.Open(strFileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));
myExcelWorkBook.OnSheetBeforeDoubleClick := ExcelWorkbook1SheetBeforeDoubleClick;
myExcelWorkBook.OnSheetBeforeRightClick := ExcelWorkbook1SheetBeforeRightClick;
myExcelWorkSheet := myExcelWorkBook.ActiveSheet as _WorkSheet;

....


end;
fjx99 2007-03-14
  • 打赏
  • 举报
回复
var
myWorkBook:Variant;
mySheet:Variant;
begin

OleContainer1.CreateObjectFromFile('c:/aaa.xls',true);
OleContainer1.DoVerb(ovShow);
myWorkBook := OleContainer1.OleObject;
mySheet := myWorkBook.ActiveSheet;


//另存
myWorkBook.Application.Dialogs.Item[xlDialogSaveAs].Show();

//页面设置
myWorkBook.Application.Dialogs.Item[xlDialogPageSetup].Show();

//打印
myWorkBook.Application.Dialogs.Item[xlDialogPrint].Show();

//打印预览(在容器里面没有办法,需另存为文件再预览)
{
//把下面C++Builder代码翻译为Delphi即可
String TempDir;
char tmp[255];
GetTempPath(255, tmp);
TempDir = StrPas(tmp);
String FileName = TempDir + "temp_forPrintPreview.xls";

DeleteFile(FileName.c_str());
m_WorkBook.OleFunction("SaveAs",FileName.c_str());
OleContainer1->Close();

Variant ExcelApp = Variant::CreateObject("Excel.Application");
ExcelApp.OlePropertySet("Visible",true);
ExcelApp.OlePropertyGet("WorkBooks").OleProcedure("Open",FileName.c_str());
Variant Dialog = ExcelApp.OlePropertyGet("Dialogs").OlePropertyGet("Item",xlDialogPrintPreview);
Dialog.OleFunction("Show");
ExcelApp.OleFunction("Quit");
ExcelApp = Unassigned;

///删除临时文件
OleContainer1->CreateObjectFromFile(FileName,false);
OleContainer1->DoVerb(ovShow);
myWorkBook = OleContainer1->OleObject;
mySheet= myWorkBook.OlePropertyGet("ActiveSheet");

DeleteFile(FileName.c_str());
}

end;
加载更多回复(2)

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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