关于保存excel的“模板”的问题?(120分)

  • 主题发起人 主题发起人 victor
  • 开始时间 开始时间
V

victor

Unregistered / Unconfirmed
GUEST, unregistred user!
我想文是否实现如下的功能?

我从数据库中将数据调到excel中显示,
并调整成一定的格式后打印出。
但这个打印的格式我以后还想使用,就想WORD中的
“模板”一样,只要重新从数据库中将数据调入
这个打印和显示的“模板”中,就可按原来的
格式一样地打印。

谢谢!
 
刚学的一招,现在开张啦!
Var
MsWord: Variant;
Begin
MsWord := CreateOLEObject('Word.Basic');
MSWord.FileNew('你的模板');
MsWord.AppShow;
读取数据库;
MsWord.Insert('你的数据'+#13);
必要的处理;
MsWord.LineUP;
MsWord.TextToTable(行,列);
MsWord.LineDown;
End;

在关闭安扭上加上:
MsWord.Quit;
基本的就完成了。
 
但Victor提出的问题好象是问如何在excel中实现,
而不是Word,
这个办法能用在excel中吗?
 
用不着模板吧.从数据库中导出来,按你要的格式直接写入excel就行了.
我给你发了一个,查收.
需要引入exceltlb.
 
这是我曾经使用过的.
uses ComObj;

var
Excel_workbook, Excel_app :OLEVariant;


begin
Msg('正在连接Excel....');
try
Excel_app := CreateOleObject('Excel.Application');
except
Msg( '无法连接到Excel ' );
exit;
end;
Excel_app.visible := true ;
Excel_workbook := Excel_app.WorkBooks.Add('模板名称.xlt');
end;

 
具体如何加载数据, 见如下例子:
可能这段代码在你那里并不能执行, 关键是一个思路, 最好的方法
是在查看Excel VBA Help说明, Office 97中有, 如果没有需要添加
一下, 主要是查看Application,Worksheet,Range等对象的使用方法,
依葫芦画瓢遍可搞定.

MSg('开始填充Excel');
Cursor:= crHourGlass ;
Excel_app.calculation := xlCalculationManual ; //VBA
with MT1 do begin
first ;
DisableControls ;
if Nameslist.Strings.IndexOf('__MONTH') > -1 then
Excel_WorkBook.activesheet.Range['__MONTH'].value:= DATESTRING; //VBA
for i:= 4 to Mt1.RecordCount + 3 do begin
for j:= 1 to Mt1.FieldCount-1 do begin
K:=Fields[j].value;
Excel_app.activesheet.Cells[i,j+1].value:=K ; //VBA
end;
next;
end;
Enablecontrols ;
end ;
Excel_app.calculation := xlCalculationAutomatic ; //VBA
Msg('填充完成');
Cursor:= crDefault;
 
接受答案了.
 
后退
顶部