★intraweb中如何把IWDBGrid的数据保存为excel文件???急!!!(不用IWGrid,有其他方法可以实现也行!)(30分)

  • 主题发起人 主题发起人 ufocn
  • 开始时间 开始时间
U

ufocn

Unregistered / Unconfirmed
GUEST, unregistred user!
intraweb中如何把IWDBGrid中的数据保存为excel文件???急!!!
不用IWGrid,有其他方法可以实现也行!比如:iw的dataset
我的IWDBGrid为iw的dataset--->iw的datasource调用


 
和平时写数据库导数据一样,插入EXCEL-SERVER,建立EXCEL文件,写入数据。
 
能详细些吗?
多谢!!!
 
没人能回答吗???
 
这个问题如果细说,要说很多,但《delphi7下intraweb开发》上有例子,这本书5月份肯定出来。
我这里简单说一下:
1、关键是利用s:=GServerController.NewCacheFile('Excel');这样产生了一个绝对
唯一的文件名,大概是Excel#######.tmp,其中#代表数字,它的路径是/cache
2、对excel操作
3、ExcelWorkSheet1.SaveAs(s);ExcelApplication1.quit;
4、s:=WebApplication.URLBase + '/cache/' + ExtractFilename(s);//必须!
5、s:='NewWindow("'+s+'", "","");';
formain.AddToInitProc(s);//弹出式!
但愿有帮助!
 
《delphi7下intraweb开发?谁写的?你吗?出了后别忘了告诉我一声,我去买!
adsg@163.net
 
to yeskert1
期待你的新作!
 
这是我修改DFW离线资料的例子,用的OLE,在 D6+IW5.053+Office 2K 下通过:
没有用IWGrid,用的是与IWGrid相连数据集DataSet 。

uses ....DB,ComObj,....
...
private
function DataSetToExcel(DS: TDataSet; MSExcel: OleVariant; eRange: OleVariant):Boolean;
...
implementation

function TformBookInfoEdit.DataSetToExcel(DS: TDataSet; MyExcel: OleVariant; eRange: OleVariant):Boolean;
var Count,I,Row: integer;
RangeName:string;
begin
with DS do
begin
if not Active then
begin
Result:=False;
WebApplication.ShowMessage('数据库没有打开');
Result:=False;
Abort;
end;
end;

ds.first;
Result := True;
try
MyExcel:= CreateOleObject('Excel.Application');
except
WebApplication.ShowMessage('本机没有EXCEL,请安装 !');
Result:=False;
end;

MyExcel.Visible := False;
MyExcel.WorkBooks.Add;
MyExcel.ScreenUpdating := False;
Count := DS.FieldCount-1;

eRange := MyExcel.Range['A1', 'A1']; //Excel文件的第一行
with DS do begin
for I := 0 to Count do begin
eRange.Value := Fields.DisplayLabel; //将字段头写入excel文件的第一行
eRange := eRange.Next; //Excel文件的下一列
end;
DisableControls;
First;
Row := 1;
while not eof do begin
Inc(Row); //row:=row+1; Excel文件的下一行
RangeName := 'A'+IntToStr(Row);
eRange := MyExcel.Range[RangeName, RangeName];
for I := 0 to Count do begin
eRange.Value := ''''+Fields.AsString;
eRange := eRange.Next;
end;
Next;
end;
EnableControls;
end;
MyExcel.ScreenUpdating := True;
MyExcel.Visible := True;
Result := True;
MyExcel.Quit;
end;

procedure TformBookInfoEdit.IWButton1Click(Sender: TObject);
var MyExcel,eRange:Variant;
begin
if DataSetToExcel(IWGrid.DataSource.DataSet,MyExcel, eRange) then
WebApplication.ShowMessage('保存成功');
end;
 
to jrq,yeskert1:
先给分,回去我试试,不行的话再请教。小弟手里分少,一定补上!:)
 
多些各位捧场!^_^
 
to xxhadsg,xzh2000:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2017159
 
[Error] tz.pas(696): Undeclared identifier: 'GServerController'
GServerController是什么呀
 
后退
顶部