TDBGrid 数据导入到execle
来源:互联网 发布:日本北陆大学 知乎 编辑:程序博客网 时间:2024/06/10 04:25
procedure TFxxlook.savetoexcel(dbname:TDBGrid);
var
excelapp:Variant;
page:Variant;
i,j:Integer;
savedialog:TSaveDialog;
BM:TBookmark;
strsavefile:string;
begin
if dbname.DataSource.DataSet.IsEmpty then //判断TDBGRID是否有数据
begin
MessageBox(Application.Handle,'数据为空不能进行保存','警告',MB_OK);
Abort;
Exit;
end;
savedialog:=TSaveDialog.Create(nil); // 创建一个保存对话框
savedialog.Filter:='*.xls|*.XLS'; //设置保存文件的后缀
savedialog.Execute; //打开保存对话框
strsavefile:=savedialog.FileName; //保存文件的目录
if Length(strsavefile)=0 then Exit; //目录为空则退出程序
try
Screen.Cursor:=crhourglass; //屏幕指针形状
try
excelapp:=CreateOleObject('excel.application');
excelapp.workbooks.add(-4167); //设置添加数据的大小
excelapp.workbooks[1].worksheets[1].name:='数据库数据';//标签页名称
page:=excelapp.workbooks[1].worksheets['数据库数据']; //指定标签页
j:=1;
except
MessageBox(GetActiveWindow,'请确认是否安装了EXCEL','提示',MB_OK+ MB_ICONINFORMATION);
Exit;
end;
with dbname.DataSource.DataSet do
begin
BM:=GetBookmark;
DisableControls;
//将DBGRID中的标题插入到EXCEL表中首行
for i:=0 to dbname.Columns.Count-1 do
begin
if dbname.Columns[1].Visible=False then
Continue;
page.cells[j,i+1]:=dbname.Columns[i].Title.Caption;
page.cells[j,i+1].font.bold:=True;
end;
Inc(j); //ECXEL表中的下一行
First;
while not Eof do
begin
for i:=0 to dbname.Columns.Count-1 do
begin
if dbname.Columns[i].Visible=False then
Continue;
//将指定行添加到EXCEL表中
page.cells[j,i+1]:=Trim(dbname.DataSource.DataSet.fieldbyname
(dbname.Columns[i].FieldName).AsString);
end;
Inc(j); //EXCEL表中下一行
Next; //TDBGrid表中下一行
end;
GotoBookmark(BM);
FreeBookmark(BM);
EnableControls;
end;
excelapp.activeworkbook.saveas(strsavefile); //将EXCEL表保存到指定目录下
Application.ProcessMessages;
excelapp.application.quit;
finally
savedialog.Free;
Screen.Cursor:=crDefault;
end;
end;
var
excelapp:Variant;
page:Variant;
i,j:Integer;
savedialog:TSaveDialog;
BM:TBookmark;
strsavefile:string;
begin
if dbname.DataSource.DataSet.IsEmpty then //判断TDBGRID是否有数据
begin
MessageBox(Application.Handle,'数据为空不能进行保存','警告',MB_OK);
Abort;
Exit;
end;
savedialog:=TSaveDialog.Create(nil); // 创建一个保存对话框
savedialog.Filter:='*.xls|*.XLS'; //设置保存文件的后缀
savedialog.Execute; //打开保存对话框
strsavefile:=savedialog.FileName; //保存文件的目录
if Length(strsavefile)=0 then Exit; //目录为空则退出程序
try
Screen.Cursor:=crhourglass; //屏幕指针形状
try
excelapp:=CreateOleObject('excel.application');
excelapp.workbooks.add(-4167); //设置添加数据的大小
excelapp.workbooks[1].worksheets[1].name:='数据库数据';//标签页名称
page:=excelapp.workbooks[1].worksheets['数据库数据']; //指定标签页
j:=1;
except
MessageBox(GetActiveWindow,'请确认是否安装了EXCEL','提示',MB_OK+ MB_ICONINFORMATION);
Exit;
end;
with dbname.DataSource.DataSet do
begin
BM:=GetBookmark;
DisableControls;
//将DBGRID中的标题插入到EXCEL表中首行
for i:=0 to dbname.Columns.Count-1 do
begin
if dbname.Columns[1].Visible=False then
Continue;
page.cells[j,i+1]:=dbname.Columns[i].Title.Caption;
page.cells[j,i+1].font.bold:=True;
end;
Inc(j); //ECXEL表中的下一行
First;
while not Eof do
begin
for i:=0 to dbname.Columns.Count-1 do
begin
if dbname.Columns[i].Visible=False then
Continue;
//将指定行添加到EXCEL表中
page.cells[j,i+1]:=Trim(dbname.DataSource.DataSet.fieldbyname
(dbname.Columns[i].FieldName).AsString);
end;
Inc(j); //EXCEL表中下一行
Next; //TDBGrid表中下一行
end;
GotoBookmark(BM);
FreeBookmark(BM);
EnableControls;
end;
excelapp.activeworkbook.saveas(strsavefile); //将EXCEL表保存到指定目录下
Application.ProcessMessages;
excelapp.application.quit;
finally
savedialog.Free;
Screen.Cursor:=crDefault;
end;
end;
0 0
- TDBGrid 数据导入到execle
- execle导入
- execle导入后 数据 无刷新 显示在 输入页面
- npoi导入execle
- execle表快速移动表格到另一个execle表
- C#中调用EXCEL和将datagridview数据导出到execle
- dbExpress操作中用TDBGrid显示数据
- 实战Delphi数据网格(TDBGrid)色彩特效
- 导入数据到oracle
- 数据导入到excel
- 数据导入到SAP
- SSM POI execle 导入篇 (含工具类)
- 数据导入(SqlServer2000导入到SqlServer2008R2)
- excel数据导入到datagrid
- Access数据导入到SQLServer2005
- SQL2000数据导入到SQL7
- 表格数据导入到EXCEL
- excel数据导入到datagrid
- Codevs_P2800 送外卖(状态压缩DP+Floyd)
- RAND_MAX+1 会溢出
- mobile service
- javascript谜题
- Centos7.1+Openstack-L版本安装笔记
- TDBGrid 数据导入到execle
- Codevs_P2800 送外卖(状态压缩DP+Floyd)
- Oracle 级联更新多表
- Oracle 去掉回车、换行、空格操作
- 线程:This application is modifying the autolayout engin from a background thread
- IE中返回application/json弹出下载框问题
- TRUNCATE TABLE 与 DELETE在删除整个表的所有记录时的区别具体到性能,效率,操作方式等方面
- Oracle 设置回滚保留时间
- 非Activity类中调用Activity方法