关于Excel问题(100分)

  • 主题发起人 主题发起人 waterflow
  • 开始时间 开始时间
W

waterflow

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有几个问题:
Delphi6的控件栏目中有一个Servers栏目,里面有一堆Office相关的控件,查Delphi的帮助
找不到,是否那些控件只是用于处理本机没有装Office的情况?
我想实现以下一些功能:
在delphi程序中编写一段sql语句,从库中获取一些信息,用Excel显示,处理
(Office2000的Excel的数据菜单中有获取外部数据->新建数据查询菜单项来获取外部数据
),我想实现的功能就是点击一个按钮,打开Excel,并且当前活动的Sheet中的数据就是
sql语句查询到的结果

 
必须有excel
 
1,必须是已安装excel.
2.你可以把dataset中的数据用循环写到excel中.
论坛中关于控制excel的贴子不少,你可以用关键字excel找一找.
 
没有EXCEL如何能创建OLE的对象呢?:(
 
把数据循环写入Excel是肯定可行的
那么,Delphi6中那一排Office方面的控件有什么用?
 
我都是用ole,
操作是录制宏然后看源代码.
gz
 
有原码吗?
 
1.必须有excel
2.利用第三方控件:
ExpressQuantumGrid
XLSReadWrite.v1.35.WITH.SOURCE.for.Delphi
XLSReadWriteII
TDataSetExport
3.利用delphi的控件ADO,Servers
4.ole
可实现方法较多。
 
[blue][:D]大家再谈一谈Delphi6中那一排Office方面的控件使用吧,我也很想知道,如何使用的,或者何处可以找到相关帮助?[/red][/blue]
 
如果用的是DXDBGRID就很简单了:只需
if savedialog1.Execute then dxdbgrid1.SaveToXLS(savedialog1.FileName,true);
如果是DBGRID,下面这个例子可将当前行导入EXCEL,若要导全部记录,做个循环就可以了。
procedure Tfrminputbasicinfo.BitBtn3Click(Sender: TObject);
var
sheet:variant;
i:int;
begin
excelapp.Connect;
excelapp.Visible[0]:=true;
excelapp.Workbooks.Add(emptyparam,0);
sheet:=excelapp.Workbooks[1].Worksheets[1];
i=1;
sheet:=excelapp.Workbooks[1].Worksheets[1];
sheet.cells[i,1]:=dmcontrol.Ladobasicinfosearch.FieldByName('aaa').AsString;
sheet.cells[i,2]:=dmcontrol.Ladobasicinfosearch.FieldByName('bbb').AsString;
sheet.cells[i,3]:=dmcontrol.Ladobasicinfosearch.FieldByName('ccc').AsString;
sheet.cells[i,4]:=dmcontrol.Ladobasicinfosearch.FieldByName('ddd').AsString;
sheet.cells[i,5]:=dmcontrol.Ladobasicinfosearch.FieldByName('eee').AsString;
sheet.cells[i,6]:=dmcontrol.Ladobasicinfosearch.FieldByName('fff').AsString;
excelapp.Disconnect;
excelapp.Quit;
end;
 
我也想知道啊,
to:yourice
加注释把,看不明,那些方法是什么意思
 
procedure Texportexcel.BitBtn1Click(Sender: TObject);
var
row,column,Tempcolumn:integer;
i,j:integer;
begin
inherited;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
Try
{ Excelapplication1.Connect;
ExcelWorkbook1.Connect;
ExcelWorksheet1.Connect;}
Except
Messagedlg('沒有安裝Excel!'+char(13)+
'請重新安裝!',mtinformation,[mbok],0);
Abort;
end;
Excelapplication1.Visible[0]:=true;
Excelapplication1.Caption:= '數據導出窗口程序';
Excelapplication1.Workbooks.Add(varNull,0);
Excelworkbook1.ConnectTo(excelapplication1.workbooks[excelapplication1.workbooks.count]);
Excelworksheet1.ConnectTo(excelworkbook1.worksheets[1] as _worksheet);
Excelworksheet1.Cells.Item[1,3]:='TOOLING PROGRESS REPORT';
Excelworksheet1.Cells.Item[2,1]:='Customer:';
Excelworksheet1.Cells.Item[2,3]:=dm.xvalue.fieldbyname('customer').value;
Excelworksheet1.Cells.Item[3,1]:='Cust.No:';
Excelworksheet1.Cells.item[3,3]:=dm.xvalue.fieldbyname('custph').value;
Excelworksheet1.Cells.Item[4,1]:='Description';
Excelworksheet1.Cells.Item[4,3]:=dm.xvalue.fieldbyname('custcpname').value;
Excelworksheet1.Cells.item[5,1]:='RSC No.:';
Excelworksheet1.Cells.Item[5,3]:=dm.xvalue.fieldbyname('rscno').value;
Excelworksheet1.Cells.item[6,1]:='Chinese Description:';
Excelworksheet1.Cells.Item[6,3]:=dm.xvalue.fieldbyname('rsccpname').value;
Excelworksheet1.Cells.Item[7,1]:='Start date:';
Excelworksheet1.Cells.Item[7,3]:=dm.xvalue.fieldbyname('rjdate').value;
Excelworksheet1.Cells.item[8,1]:='Estimate Finish Date:';
Excelworksheet1.Cells.Item[8,3]:=dm.xvalue.fieldbyname('rjoverdate').value;
Excelworksheet1.Cells.item[9,1]:='Actual Finish Date';
Excelworksheet1.cells.Item[10,1]:='total days:';
Excelworksheet1.Cells.Item[10,3]:=dm.xvalue.fieldbyname('totaldays').value;
Excelworksheet1.cells.item[11,1]:='Progress Per Day:';
Excelworksheet1.Cells.Item[11,3]:=dm.xvalue.fieldbyname('perday').value+'%';
Excelworksheet1.Cells.Item[12,1]:='Date/Time';
EXCELWORKSHEET1.Cells.Item[12,2]:='PLAN(%)';
Excelworksheet1.Cells.Item[12,3]:='ACTUAL(%)';
Excelworksheet1.Cells.Item[12,4]:='GAP';
Excelworksheet1.Cells.Item[12,5]:='WORKING DAYS';
row:=13;
dm.evalue.First ;
While Not(dm.evalue.Eof) do
begin
TempColumn := 0 ;
for Column:=1 to DbGrid1.FieldCount do
begin
if DbGrid1.Columns.Items[Column-1].Visible = True Then
begin
TempColumn := TempColumn + 1 ;
ExcelWorksheet1.Cells.Item[row,TempColumn] := DbGrid1.Fields[Column-1].AsString;
end;
end;
dm.evalue.Next;
row:=row + 1;
end;
end;
給分,快點,窮死了
 
多人接受答案了。
 
后退
顶部