如何将DBGrid中的数据原样导出到Excel表中
来源:互联网 发布:手机淘宝聊天工具 编辑:程序博客网 时间:2024/05/01 23:09
library LoadDBGridToExcel;
uses
ShareMem,
SysUtils,
Classes, Windows,Variants, Dialogs, DBGrids, ExcelXP,Graphics;
{$R *.res}
function sendDBGridToExcel_F(dbg :TDBGrid;sheetName :string;show: Boolean):TDateTime;stdcall;
var
i,row,column,icount:integer;
excelApplication:TexcelApplication;
excelWorkBook: TExcelWorkbook;
excelWorkSheet: TExcelWorksheet;
begin
dbg.DataSource.DataSet.Open;
if (dbg.DataSource.DataSet.RecordCount < 1) or ( not dbg.DataSource.DataSet.Active) then
begin
Result := 0;
messagebox(getactivewindow(),'无数据!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
try
excelApplication := TExcelApplication.Create(nil);
excelWorkBook := TExcelWorkbook.Create(nil);
excelWorkSheet := TExcelWorksheet.Create(nil);
excelApplication.Connect;
excelApplication.Visible[0] := show; {显示过程}
excelApplication.Caption := 'Excel Application';
excelApplication.Workbooks.Add(null,0);
excelWorkBook.ConnectTo(excelApplication.Workbooks[1]);
excelWorkSheet.ConnectTo(excelWorkBook.Worksheets[1] as _Worksheet);
excelWorkSheet.Name := sheetName;
row := 2;
dbg.DataSource.DataSet.First;
for icount := 0 to dbg.Columns.Count - 1 do
begin
excelWorkSheet.Cells.Item[1,icount + 1] := dbg.Columns.Items[icount].Title.Caption;
excelWorkSheet.Cells.Item[1,icount + 1].Font.color := clred;
excelWorkSheet.Cells.Item[1,icount + 1].Font.Name := '黑体';
end;
while not (dbg.DataSource.DataSet.Eof) do
begin
column := 1;
for i := 0 to dbg.Columns.Count - 1 do
begin
excelWorkSheet.Cells.Item[row,column] := ''''+dbg.DataSource.DataSet.fieldByName(dbg.Columns.Items[i].FieldName).AsString;
column := column + 1;
end;
dbg.DataSource.DataSet.Next;
row := row + 1;
end;
excelApplication.Visible[0] := True;
excelApplication.Connect;
excelApplication.Free;
excelWorkSheet.Free;
excelWorkBook.Free;
Result := Now;
messagebox(getactivewindow(),'数据导出EXCEL成功!','提示',MB_OK+MB_ICONINFORMATION);
except
Result := 0;
MessageDlg('Excel可能尚未安装!',mtError,[mbOK],0);
Abort;
end;
end;
procedure sendDBGridToExcel(dbg :TDBGrid;sheetName :string);stdcall;
var
i,row,column,icount:integer;
excelApplication:TexcelApplication;
excelWorkBook: TExcelWorkbook;
excelWorkSheet: TExcelWorksheet;
begin
dbg.DataSource.DataSet.Open;
if (dbg.DataSource.DataSet.RecordCount < 1) or ( not dbg.DataSource.DataSet.Active) then
begin
messagebox(getactivewindow(),'无数据!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
try
excelApplication := TExcelApplication.Create(nil);
excelWorkBook := TExcelWorkbook.Create(nil);
excelWorkSheet := TExcelWorksheet.Create(nil);
excelApplication.Connect;
excelApplication.Visible[0] := True; {显示过程}
excelApplication.Caption := 'Excel Application';
excelApplication.Workbooks.Add(null,0);
excelWorkBook.ConnectTo(excelApplication.Workbooks[1]);
excelWorkSheet.ConnectTo(excelWorkBook.Worksheets[1] as _Worksheet);
excelWorkSheet.Name := sheetName;
row := 2;
dbg.DataSource.DataSet.First;
for icount := 0 to dbg.Columns.Count - 1 do
begin
excelWorkSheet.Cells.Item[1,icount + 1] := dbg.Columns.Items[icount].Title.Caption;
excelWorkSheet.Cells.Item[1,icount + 1].Font.color := clred;
excelWorkSheet.Cells.Item[1,icount + 1].Font.Name := '黑体';
end;
while not (dbg.DataSource.DataSet.Eof) do
begin
column := 1;
for i := 0 to dbg.Columns.Count - 1 do
begin
excelWorkSheet.Cells.Item[row,column] := dbg.DataSource.DataSet.fieldByName(dbg.Columns.Items[i].FieldName).AsString;
column := column + 1;
end;
dbg.DataSource.DataSet.Next;
row := row + 1;
end;
excelApplication.Visible[0] := True;
excelApplication.Connect;
excelApplication.Free;
excelWorkSheet.Free;
excelWorkBook.Free;
messagebox(getactivewindow(),'数据导入EXCEL成功!','提示',MB_OK+MB_ICONINFORMATION);
except
MessageDlg('Excel尚未安装!',mtError,[mbOK],0);
Abort;
end;
end;
exports
sendDBGridToExcel,sendDBGridToExcel_F;
begin
end.
- 如何将DBGrid中的数据原样导出到Excel表中
- 如何将DBGrid 中的数据导入到EXCEL中
- 将dev gridview中数据原样导出到EXCEL
- 将DBGrid中的数据导出到Word和Excel
- 将DBGrid的数据导出到word和excel中
- 将DBGrid的数据导出到word和excel中
- 将DBGrid中的数据导出到Word
- DBGrid数据导出到Excel表格中
- 如何将DataGrid中的数据导出到Excel文件中
- 如何将DataGrid中的数据导出到Excel文件中
- 如何将datagridview中的数据导出到Excel中(转)
- 如何将datagridview中的数据导出到Excel中
- C#中如何将DataTable中的数据导出到Excel
- C#如何将ListView中的数据导出到Excel中
- SQLyog如何将mysql中的表数据导出到Excel
- c++builder 6.0 将DBGrid中的数据导出到Word和Excel
- 将DBGrid的数据导出到Excel文件保存
- 将DBGrid的数据导出到Excel文件保存
- 如何将Excel中的数据导入数据库
- dictmatch及多模算法串讲(一)
- Thread 摘要
- 给sqlite数据库加密的两种方法
- Dwr 搜索条
- 如何将DBGrid中的数据原样导出到Excel表中
- C#读取HTML文件内容写入记事本
- 不做人生规划,你离挨饿只有三天
- OSE(OpenNMS Sans Effort):CentOS装好,OpenNMS也就装好了,真的!
- C# 日期格式---格式模式
- 取得某一类所在包的所有类名
- 在这个偏僻的角落里写自己的故事给自己听
- javascript 小测试
- 一篇不错的文章 程序员能力矩阵 你属于哪一层?