//输出字段名称
Columi:=1;
for j := 0 to DataSet.FieldCount-1 do
if DataSet.Fields.Fields[j].Visible then
Sheet.Cells[1,j+Columi]:=DataSet.Fields.Fields[j].DisplayName
else
Dec(Columi);
//输出数据;忽略非可见字段
Columi:=1;
DataSet.First;
for i := 0 to DataSet.RecordCount-1 do
begin
for j := 0 to DataSet.FieldCount-1 do
if DataSet.Fields.Fields[j].Visible then
Sheet.Cells[i+2,j+Columi]:=DataSet.Fields.Fields[j].AsString
else
Dec(Columi);
Columi:=1;
DataSet.Next;
end;