delphi7 中如何把 DBGrid 中数据一条一条分别保存到 excel 文件
想要实现点击按钮1,ID1姓名张三的信息保存到excel表中,点击按钮2,ID2姓名李四的信息保存到同一张表中同时不覆盖上一个信息(张三的)求代码...
想要实现点击按钮1,ID1 姓名张三的信息保存到excel表中,点击按钮2,ID2姓名李四的信息保存到同一张表中同时不覆盖上一个信息(张三的) 求代码
展开
2个回答
2015-01-21
展开全部
要先在delphi中引入Excel:
“Project”——“Import Tpye Library”,在弹出的对话框中点击“Add”。找到你安装Excel的盘,,默认的安装路径:“C:\Program Files\Microsoft Office\OFFICE11”.安装的版本如果不同的话“OFFICE11”文件名会不一样。然后你可以找到“XL5CHS32.OLB”和“XL5EN32.OLB”文件。这两个文件你可以任选一个。XL5CHS32.OLB是中文版Excel,XL5EN32.OLB是英文版的Excel。选中后回到了Import Tpye Library对话框,在此对话框中选择“create unit”.这个新创建的单元会放在你当前文件存放的同一个目录下。记住不能删。
2、在你放按钮的窗体中添加一个ExcelApplication1控件,它放在Servers栏中。
3、继续上一步,在窗体的代码implementation部分添加如下代码:
uses dm,tools,Excel_TLB,comobj;
{$R *.dfm}
Function DetailToExcel(xl_file:string;grid:Tdbgrid;T1:string='';T2:string='';T3:string=''):integer;
var xlApp:Variant;
i,j:integer;
irow,icol:integer;
TitleLines:integer;
Titles:array [1..3] of string;
begin
if (not grid.DataSource.DataSet.Active) or (grid.DataSource.DataSet.RecordCount=0) then exit;
Try
xlapp:=createoleobject('Excel.application');
xlapp.workbooks.Add(-4167);
xlapp.visible:=true;
Except
showmessage('未安装Microsoft Excel 2000!请安装!');
exit
end;
“Project”——“Import Tpye Library”,在弹出的对话框中点击“Add”。找到你安装Excel的盘,,默认的安装路径:“C:\Program Files\Microsoft Office\OFFICE11”.安装的版本如果不同的话“OFFICE11”文件名会不一样。然后你可以找到“XL5CHS32.OLB”和“XL5EN32.OLB”文件。这两个文件你可以任选一个。XL5CHS32.OLB是中文版Excel,XL5EN32.OLB是英文版的Excel。选中后回到了Import Tpye Library对话框,在此对话框中选择“create unit”.这个新创建的单元会放在你当前文件存放的同一个目录下。记住不能删。
2、在你放按钮的窗体中添加一个ExcelApplication1控件,它放在Servers栏中。
3、继续上一步,在窗体的代码implementation部分添加如下代码:
uses dm,tools,Excel_TLB,comobj;
{$R *.dfm}
Function DetailToExcel(xl_file:string;grid:Tdbgrid;T1:string='';T2:string='';T3:string=''):integer;
var xlApp:Variant;
i,j:integer;
irow,icol:integer;
TitleLines:integer;
Titles:array [1..3] of string;
begin
if (not grid.DataSource.DataSet.Active) or (grid.DataSource.DataSet.RecordCount=0) then exit;
Try
xlapp:=createoleobject('Excel.application');
xlapp.workbooks.Add(-4167);
xlapp.visible:=true;
Except
showmessage('未安装Microsoft Excel 2000!请安装!');
exit
end;
追问
少复制了一半吧?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接做一个导出功能即可,实现流程如下:
1、添加一个“导出”按钮;
2、点击按钮,双击进入代码编辑区,先定义局部变量XlAPP(var XlAPP: Variant;);
3、再添加实现导出的代码,如下:
try
if ActiveControl.ClassType.ClassName = 'TwwDBGrid' then
begin
// 将游标变为漏斗
Screen.Cursor := crHourglass;
if not Db_data.DataSource.DataSet.Active then exit;
if Db_data.DataSource.DataSet.RecordCount < 1 then exit;
try
XlApp := createoleobject('Excel.Application');
XLApp.Visible := false;
// excelcount := XLApp.Workbooks.count;
XLApp.Workbooks.Add(xlWBatWorkSheet);
Sheet1 := XLApp.Workbooks[1].WorkSheets['sheet1'];
except
showmessage('未能正常导出Excel,请与IT部同事联系!');
exit;
end;
// 把游标变为预设值
Screen.Cursor := crDefault;
end
else
application.MessageBox('请选择需要导出的内容!','温馨提示', 0);
finally
end;
1、添加一个“导出”按钮;
2、点击按钮,双击进入代码编辑区,先定义局部变量XlAPP(var XlAPP: Variant;);
3、再添加实现导出的代码,如下:
try
if ActiveControl.ClassType.ClassName = 'TwwDBGrid' then
begin
// 将游标变为漏斗
Screen.Cursor := crHourglass;
if not Db_data.DataSource.DataSet.Active then exit;
if Db_data.DataSource.DataSet.RecordCount < 1 then exit;
try
XlApp := createoleobject('Excel.Application');
XLApp.Visible := false;
// excelcount := XLApp.Workbooks.count;
XLApp.Workbooks.Add(xlWBatWorkSheet);
Sheet1 := XLApp.Workbooks[1].WorkSheets['sheet1'];
except
showmessage('未能正常导出Excel,请与IT部同事联系!');
exit;
end;
// 把游标变为预设值
Screen.Cursor := crDefault;
end
else
application.MessageBox('请选择需要导出的内容!','温馨提示', 0);
finally
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询