对Excel问题的一个设想(100分)

  • 主题发起人 主题发起人 newstone
  • 开始时间 开始时间
N

newstone

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi中对于数据库报表制作的方法我有一个设想如下:(怎么输入问题无法换行?) 1.将所有报表表头的格式信息设计好后保存在一个Excel文件中;
2.在Delphi程序中打开相应的工作表,将数据从给定的行参数之后写入指定名称的工作表中,这样,无论表头多复杂,都可以满足用户的需要,不知这样该如何实现?
 
其实这是个很好的方法,也不难实现,你现在是那里实现不了呢?
 
我都是这样做的啊。它已经不是新技术了。很简单。
 
TO:热水
简单就详细点说一说。好吗?
 
我的太慢了。你门有快的吗?
 
先谢谢slong了, 我现在的问题是:
1.程序无法判断Excel是否被用户已经关闭了;
如果已被用户关闭,则程序中就出异常.
2.无法指定用Excel打开指定名称的工作表(用序号不保险,因为有可能用户改变表的顺序)
3.如何设置单元格的表格线
如果有源程序,能够email一份,alaclp@263.net, 本人重金相谢
 
研究demo/activeX/Oleauto/Word8/word8auto.dpr ,你会发现office把事件接口都暴露了;
接宝地一用,请问能否直接把已经读入内存中word文件直接用word打开,
我不要用Olecontainer,也不要先savetofile:-)
 
用ADO连Excel,其余的与用DBGrid一样,Excel中要定义区
 
!我保证你们看到以下的用法一定爽歪歪了!!!
这可是我三天工作的结果。唔。。。
---看最后终结者office。
--------------------------------
如果你们用的office97的server控件,那么用office2000时就要把server上的控件换掉。
做法:
1。在Componet里打开Install Packages.....
2.去掉borland sample automation server components
3.在project中点input type Library....
4.点add加入office2000的类库。(在Microsoft Office/office目录下的)
5。反正是什么Excel9.olb , Msword9.olb 和那些*.olb的东东,有excel的,word的,等。。。
6。palette page:改为servers(因为以前的office的控件完完了)
7。点install就好了。
这样office2000的问题我想应解决了。(如果你用的是什么word.application或excel.application 的控件的话)。
-----------
我的建议:
先用上面一的方法,再用comobj对象。
use comobj, excel_tlb;
//excel_tlb 是新excel控件的pas文件,你把新控件放在窗体上看它用的哪个.pas就好了,当然下面要把这个控件去掉。因为comobj不用这个控件。只用这个.pas如excel_tlb中的函数。
var xl:variant;
在事件里写:
xl:=createoleobject('Excel.Application');
然后打开excel或word录一个宏命令,并打开宏命令考入代码。
----以下是宏录下来的宏。
workbooks.add
Range("C5:D7").Select
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.Delete
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Sheet3").Range("A1")
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3"
-------
现在把它改为以下:
xl.workbooks.add;
xl.workbooks.add('d:/test.xls');
xl.Range['C5:D7'].Select;
xl.Sheets['Sheet2'].Select;
xl.ActiveWindow.SelectedSheets.Delete;
xl.Charts.Add;
xl.ActiveChart.ChartType := xlColumnClustered;
xl.ActiveChart.Location(xlLocationAsObject,'Sheet3');
现在运行一下,我保证你们爽歪歪!
看到规律了吗?
前面加上对象名,()改[],= 改:=,有参数时直接用,后加;
。哈哈,满意了吧,
用office的宏命令可是不用你去想编程的,全是手动。这样少写了一大堆代码。
bbcoll 如有不明白的朋友讨论可:bbcoll@china.com
-------------------------------------------------------
 
"用ADO连Excel,其余的与用DBGrid一样,Excel中要定义区"
定义区......?
请说清楚些
 
借个光:)
js:用ado连接excel?李维的书里也这样说,可我用adoconnection就连不起来
你怎么连的?告诉一下,谢谢
 
excel可以直接连ADO,倒过来就不知道了 。
 
多人接受答案了。
 
后退
顶部