社区
Delphi
帖子详情
紧急求救,关于调用execl,谢谢各位了
qdmis
2005-12-20 11:48:09
一个很复杂的报表,我做个一个模板,在delphi程序下调出来,通过读取数据库中的数据再保存。
问题是:调用execl模板直接就显示在外面了,怎么让execl显示在form上固定的区域?谢谢各位了
...全文
198
11
打赏
收藏
紧急求救,关于调用execl,谢谢各位了
一个很复杂的报表,我做个一个模板,在delphi程序下调出来,通过读取数据库中的数据再保存。 问题是:调用execl模板直接就显示在外面了,怎么让execl显示在form上固定的区域?谢谢各位了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
j252090366
2005-12-23
打赏
举报
回复
其实用ado组件也可以的,只显示数据,就显示在dbgrid里面吧!
qdmis
2005-12-22
打赏
举报
回复
我现在需要把Execl文件嵌入OleContainer容器中?
qdmis
2005-12-22
打赏
举报
回复
只是数据就可以了,最上面的菜单就不要了,很急啊,谢谢各位了
沙粒
2005-12-22
打赏
举报
回复
//转载
创建OLE对象:
Var olecon: TOleContainer;
Olecon:= TOleContainer.Create(self);
Olecon.oleobject:= Olecon.CreateObject('excel.sheet',false);
或选择导入一个excel文件来创建OLE对象:
Olecon.oleobject:= Olecon.CreateObjectFromFile(xlsname,false);
最好隐藏excel的几个工具条,这样就好象是嵌在你的程序中的一个表而已了:
Olecon.OleObject.application.CommandBars['Standard'].Visible:=false;
Olecon.OleObject.application.CommandBars['Formatting'].Visible:=false;
Olecon.OleObject.application.CommandBars['Reviewing'].Visible:=false;
然后显示并激活excel表,对TOleContainer定义的对象:
Olecon.show;
Olecon.doverb(0);
这样基本可以了,但TOleContainer有个不好的地方,就是当你一点击其它控件是就它就失去焦点,然后就自动退出,其实并没有真的退出,
只是需要你再次激活它而已,关键是当它失去焦点的时候就excel对象就不见了,可以用Timage控件把TOleContainer所在的地方有EXCEL时
候的区域图片截下来骗骗用户,我们这里主要不是讲这个,就不详述了。
下面我们就开始讲Excel_TLB中的接口的常用属性和方法,主要是针对导出和设定报表格式的一些接口元素。
单元格的读写属性:
olecon.OleObject.application.cells.item[1,1];
olecon.OleObject.application.cells(1,1);
olecon.OleObject.application.cells[1,1].Value;
上面三种都可以对工作表的‘A1’单元进行读写。
在delphi中对单元格(集),区域,工作表等所有对象的操作都是要Variant来实现的。
自己的程序中选定区域赋给Range:
Var range,sheet:Variant;
Range:= olecon.OleObject.application.Range['A1:C3'];
或者:
Sheet:= olecon.OleObject.application.Activesheet;
Range:= olecon.OleObject.application.Range[sheet.cells[1,1],sheet.cells[3,3]];
对上面的Range合并单元格:
Range.merge;
Range. FormulaR1C1:='合并区';//合并后写入文本
注意以后要读合并的单元格里面的文本就是读合并区域的左上角的那个单元格的文本
在excel表中选定区域赋给range:
range:=excel_grid1.OleObject.application.selection;
拆分单元格:
Range.unmerge;
合并后设定单元格(集)的格式:
Range.HorizontalAlignment:= xlCenter;// 文本水平居中方式
Range.VerticalAlignment:= xlCenter//文本垂直居中方式
Range.WrapText:=true;//文本自动换行
Range.Borders.LineStyle:=1//加边框
Range.Interior.ColorIndex:=39;//填充颜色为淡紫色
Range.Font.name:='隶书';//字体
Range.Font.Color:=clBlue;//字体颜色
常用格式也就这些,以上这些对于单个单元格也适用。
在excel表中寻找前后上下的单元格:
Var u1,u2,u3,u4,u5:Variant;
U1:=olecon.oleobject.application.activecell;//获取当前格;
U2:=u1.previous;//非特殊情况就是u1左边的一格;
U3:=ui.next;//非特殊情况就是u2右边的一格;
U4:=olecon.oleobject.application.cells[u1.cells.row-1,u1.cells.column];//非特殊情况为上面一格
U5:=olecon.oleobject.application.cells[u1.cells.row+1,u1.cells.column];//非特殊情况为下面一格
删除和插入一行和一列:
Olecon.oleobject.application.rows[2].delete;
Olecon.oleobject.application.columns[2].delete;
Olecon.oleobject.application.rows[2].insert;
Olecon.oleobject.application.columns[2].insert;
复制指定区域:
Olecon.oleobject.application.range['A1:C3'].copy;
从指定单元格开始粘贴:
Olecon.oleobject.application.range['A4'].PasteSpecial;
常用的就这些了,对delphi中server面板下的EXEL控件和创建EXCEL.Application COM对象的方式都适用。
j252090366
2005-12-21
打赏
举报
回复
只是显示excel中的数据,还是整个excel呢??????
OYGX
2005-12-20
打赏
举报
回复
有用,学学吧
wrksky
2005-12-20
打赏
举报
回复
帮你顶一下。DELPHI中有一组WORD的控件不过从来不知道该怎么用。那个是不是有用
qdmis
2005-12-20
打赏
举报
回复
OLEContainer具体怎么用?可以说说吗?谢谢
ccrun.com
2005-12-20
打赏
举报
回复
OLEContainer
liu23xing
2005-12-20
打赏
举报
回复
帮顶!!!
顺便学习
qdmis
2005-12-20
打赏
举报
回复
没人知道吗?自己顶
Excel数据管理系列课程
Exec
l排序与分类汇总
要使制作或设计的工作表更加具有可读和容易分析,可以通过一些常用的管理来实现,包括排序、分类汇总和筛选等。本课程将介绍相关的知识和技巧。
系统
调用
exec
l
系统
调用
exec
代表一系列的函数,函数的声明如下 int
exec
l(const char *path, const char *arg, ... /* (char *) NULL */); int
exec
lp(const char *file, const char *arg, ... /* (...
嵌入式Linux并发程序设计,进程,
exec
函数族,进程
调用
指定程序,
exec
l()/
exec
lp(),
exec
v()/
exec
vp(),system()
文章目录1,
exec
函数族2,进程
调用
指定程序
exec
l()/
exec
lp()
exec
l()/
exec
lp()示例3,进程
调用
指定程序
exec
v()/
exec
vp()
exec
v()/
exec
vp()示例4,进程
调用
指定程序system() 1,
exec
函数族 进程
调用
exec
函数族...
问题1——在子进程中
调用
exec
l完后,接着
调用
_exit(0)的意义——< APUE-P201>
整个程序是这样的: if(pid == 0) { ...
exec
l("/bin/sh", "sh", "-c", cmdtring, (char*0)) ...也就是将整个程序内容(包括数据、堆、栈空间,尤其是文本静态区),都会给替换...所以如果
exec
l成功,那么后面的程序
fork和
exec
l
调用
另一个c程序
exec
的几个函数是类似的,这里只讨论
exec
l。
exec
l()函数声明如下: extern int
exec
l(_const char *_path,const char *_argv[],…,NULL) 简单解释:函数
exec
l()返回值定义为整形,如果执行成功将不返回!执行失败...
Delphi
5,379
社区成员
262,722
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章