各位大侠:
我是一名新手,请问如何将查询的数据导出到Excel中去?我用的是数据库是SQL,用的存储结构查询数据.谢谢.
我是一名新手,请问如何将查询的数据导出到Excel中去?我用的是数据库是SQL,用的存储结构查询数据.谢谢.
解决方案 »
- MDI 子窗体打开MDI 子窗体
- cxGrid单元格据居中
- tchart横坐标的问题,大家请进
- Raize安装问题,机器上有D7和D006,原来D7用4.0安装包安装过了,怎样在D2006上安装?
- COM调用改TCP/IP问题,请高手赐教
- 怎样才能能捕获pageup,pagedown或up,down,left和ringt等功能键的键值吗?
- 求透明listview控件
- 一个简单的问题
- Delphi与SQL Server到底要怎么关联
- 本人即将毕业,需要英文翻译5000字(中文),哪位好心人给贴过来相当的英文资料(与delphi相关),分数赠上,谢了。
- 关于TStringList的用法
- 请问高手,delphi有没有一个同c中的memset这个函数
var
ExcelApp, WorkBook: Variant;
i, j: Integer;
Row, Col: Integer;
FieldName: string;
DataSet: TDataSet;
S: String;
begin // 数据发送到 Excel
try
ExcelApp := CreateOleObject('Excel.Application');
WorkBook := CreateOleObject('Excel.Sheet');
except
Application.MessageBox('你的机器里未安装Microsoft Excel. ', '', 32);
Exit;
end; Application.ProcessMessages;
WorkBook := ExcelApp.WorkBooks.Add;
Col := 1;
ExcelApp.Cells(2, Col) := Title;
Row := 4;
DataSet := DBGrid.DataSource.DataSet;
for I := 0 to DBGrid.Columns.Count - 1 do
begin
if DBGrid.Columns[I].Visible then
begin
FieldName := DBGrid.Columns[I].Title.Caption;
ExcelApp.Cells(Row, Col) := FieldName;
Col := Col + 1;
end;
end; Row := Row + 1; DataSet.First;
while not DataSet.Eof do
begin
Col := 1;
for J := 0 to DBGrid.Columns.Count - 1 do
begin
FieldName := DBGrid.Columns[J].FieldName;
ExcelApp.Cells(Row, Col) := ' ' + DataSet.FieldByName(FieldName).AsString + ' ';
Col := Col + 1;
end;
Row := Row + 1;
DataSet.Next;
end; if Total then
begin
Col := 1;
for J := 0 to DBGrid.Columns.Count - 1 do
begin
S := Char(64 + ((J+1) mod 26));
if (J+1) > 26 then
begin
S := Char(65+(((J+1)-26) div 26)) + S;
end;
if J = 0 then
begin
ExcelApp.Cells(Row, Col) := '合计';
end
else if DBGrid.Columns[J].Field.DataType in [ftInteger, ftSmallint, ftFloat, ftBCD] then
begin
FieldName := DBGrid.Columns[J].FieldName;
ExcelApp.Cells(Row, Col) := '=SUM('+S+'4:'+S+IntToStr(Row-1)+')';
end;
Col := Col + 1;
end;
end;
ExcelApp.Visible := True;
// WorkBook.SaveAs(SaveDialog1.FileName);
// WorkBook.Close;
// ExcelApp.Quit;
// ExcelApp := Unassigned;
end;