在论坛里发现:
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 DSdo
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 DSdo
begin
for I := 0 to Countdo
begin
eRange.Value := Fields.DisplayLabel;
//将字段头写入excel文件的第一行
eRange := eRange.Next;
//Excel文件的下一列
end;
DisableControls;
First;
Row := 1;
while not eofdo
begin
Inc(Row);
//row:=row+1;
Excel文件的下一行
RangeName := 'A'+IntToStr(Row);
eRange := MyExcel.Range[RangeName, RangeName];
for I := 0 to Countdo
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;
在intraweb7下调试了上述!
是可以实现的。
但为什么一生成就弹出一对话框呢:是,否,取消
我不想让他弹出,想在点击关闭时,才提示是否保存啊!
还有一个问题,但程序代码正常退出是,会发现运行窗口的存放图片的控件不见了呢!
为什么啊?