输出EXCEL(30分)

  • 主题发起人 主题发起人 SmallA
  • 开始时间 开始时间
S

SmallA

Unregistered / Unconfirmed
GUEST, unregistred user!
我将查询到的数据输出到EXCEL文件,但没有标题,不知怎么写呢?
同时不想每次输出时都打开EXCEL,存盘时想有个提示窗口出来,输入
存的文件名.代码如下,请指点

var
i,row,column:integer;
begin
Try
ExcelApplication1.Connect;
Except
MessageDlg('本机尚没安装EXCEL,请先安装',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
ExcelApplication1.Workbooks.Add(Null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
FindADOQuery.Open;
row:=1;
While Not(FindADOQuery.Eof) do
begin
column:=1;
for i:=1 to FindADOQuery.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=FindADOQuery.fields[i-1].AsString;
column:=column+1;
end;
FindADOQuery.Next;
row:=row+1;
end;
 
我也想知道!
 
你说的标题是不是每个列的标题!如果时可以这样:
for I := 0 to query1.Fields.Count - 1 do
begin
XlsSheet.Cells[1,I + 1] := query1.Fields.DisplayLabel; //标题
end;
query1.first;
for J := 0 to query1.RecordCount - 1 do
begin
for I := 0 to query1.Fields.Count - 1 do.//写标题
begin
XlsSheet.Cells[J + 2,I + 1] := query1.Fields.AsString;
end;
query1.Next;
 
代码就不写了.
1. 输出标题很简单,就利用adoquery的fieldcount和fieldname就可以了,下面是一个示例
例如
for i := 0 to FindQuery.Fields.Count-1 do
begin
ExcelWorksheet1.Cells.Item[row,column] := FindQuery.Fields.FieldName;
Inc(column);
end

2.>>同时不想每次输出时都打开EXCEL,存盘时想有个提示窗口出来,输入
>>存的文件名.代码如下,请指点
有不想,又有想,我不知道你到底想要什么[:D]
如果想让excel不可见,可以用celapplication1.visible[0] := False;
然后用你的按钮来控制存盘操作.
呵呵,不知道有没有理解对.

 
这句话:
ExcelApplication1.Application.ActiveWindow.Caption:='你的标题';
 
TO bluerain:
这语句应该放在哪里呢?
 
是每列的标题,几表的字段
 
唉,到头来还是要写代码:

从 FindADOQuery.Open;以后

row := 1;
column := 1;
for i := 0 to FindQuery.Fields.Count-1 do
begin
ExcelWorksheet1.Cells.Item[row,column] := FindQuery.Fields.FieldName;
Inc(column);
end
Inc(row);

While Not(FindADOQuery.Eof) do
begin
column := 1;
for i:=1 to FindADOQuery.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=FindADOQuery.fields[i-1].AsString;
column:=column+1;
end;
FindADOQuery.Next;
row:=row+1;
end;
 
displayalerts:=true;
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
862
import
I
I
回复
0
查看
627
import
I
I
回复
0
查看
636
import
I
I
回复
0
查看
457
import
I
I
回复
0
查看
673
import
I
后退
顶部