dbgrid数据导出为excel

uses Excel2000,ComObj;

procedure F_Form.Button1Click(Sender: TObject);
var
    myExcel:TExcel;
    Int_i,Int_j,rowCount,columnCount:Integer;
    ExcelId:Variant;
begin
  try
      ExcelId:=CreateOleObject('Excel.Application');
  except
      on Exception do raise Exception.Create('无法创建报表,请确认是否安装EXCEL');
  end;

if DBGrid4.DataSource.DataSet.RecordCount<>0 then
  begin
      rowCount:=DBGrid4.DataSource.DataSet.RecordCount;
      columnCount := DBGrid4.FieldCount;
        try
            Excelid.Visible := True;
            Excelid.WorkBooks.Add;
            Excelid.WorkSheets[1].Range['A1:I1'].Merge(True);
            Excelid.WorkSheets[1].Cells[1,1].Value :=  'xxx公司';

Excelid.WorkSheets[1].Range['A2:I2'].Merge(True);
            Excelid.WorkSheets[1].Cells[2,1].Value := 'xxx信息统计表';

excelid.worksheets[1].cells[3,1].value:='1;
            excelid.worksheets[1].cells[3,2].value:='2;
            excelid.worksheets[1].cells[3,3].value:='3';
            excelid.worksheets[1].cells[3,4].value:='4;
            excelid.worksheets[1].cells[3,5].value:='5;
            excelid.worksheets[1].cells[3,6].value:='6;
            excelid.worksheets[1].cells[3,7].value:='7;
            excelid.worksheets[1].cells[3,8].value:='8';
            excelid.worksheets[1].cells[3,9].value:='9;
            excelid.worksheets[1].cells[3,10].value:='10;

Excelid.WorkSheets[1].Range['A1:T3'].Font.Name :='宋体';
            Excelid.WorkSheets[1].Range['A1:I2'].Font.Size :=12;
            Excelid.WorkSheets[1].Range['A2:T3'].Font.Size :=10;
            Excelid.WorkSheets[1].Range['A1:T3'].Font.Bold :=True;

DBGrid4.DataSource.DataSet.First();
            for Int_i:=0 to rowCount do
            begin
              for Int_j:=0 to columnCount-1 do
              begin
                ExcelId.worksheets[1].cells[Int_i+4,int_j+1].value:=  DBGrid4.DataSource.DataSet.FieldByName(DBGrid4.Columns.Items[int_j].FieldName).AsString;
              end;
              DBGrid4.DataSource.DataSet.Next();
            end;

Excelid.WorkSheets[1].range['A1:T3'].HorizontalAlignment := $FFFFEFF4;
            Excelid.worksheets[1].range['A1:T3'].VerticalAlignment := $FFFFEFF4;
            Excelid.Columns.AutoFit;

finally
        end;

end;
end;
-----------------------------------
从dbgrid导出数据保存成excel文件

实验了,很好用
function TForm1.ExportDBGrid(DBGrid: TDBGrid; SheetName: string): boolean;//直接保存,不显示EXCEL
var

c, r, i, j: integer;

app: Olevariant;

TempFileName, ResultFileName: string;

begin

try

result := True;

app := CreateOLEObject('Excel.application');

// app.WorkBooks.Add(xlWBatWorkSheet);

except

Application.MessageBox('Excel没有正确安装!','警告',MB_OK);

result := False;

exit;

end;

SaveDialog1.DefaultExt := 'xls';

SaveDialog1.FileName := SheetName;

if SaveDialog1.Execute then

TempFileName := SaveDialog1.FileName

else

Exit;

app.Workbooks.add;

app.Visible := false;

Screen.Cursor := crHourGlass;

DBGrid.DataSource.DataSet.First;

c := DBGrid.DataSource.DataSet.FieldCount;

r := DBGrid.DataSource.DataSet.RecordCount;

Application.ProcessMessages;

for i := 0 to c - 1 do

app.cells(1, 1 + i) := DBGrid.DataSource.DataSet.Fields[i].DisplayLabel;

for j := 1 to r do

begin

for i := 0 to c - 1 do

app.cells(j + 1, 1 + i) := DBGrid.DataSource.DataSet.Fields[i].AsString;

DBGrid.DataSource.DataSet.Next;

end;

ResultFileName := TempFileName;

if ResultFileName = '' then

ResultFileName := '数据导出';

if FileExists(TempFileName) then

DeleteFile(TempFileName);

app.Activeworkbook.saveas(TempFileName);

app.Activeworkbook.close(false);

app.quit;

app := unassigned;

end;

procedure TForm1.Button2Click(Sender: TObject);   //按钮保存

begin

try

Screen.Cursor := crHourGlass;

ExportDBGrid(DBGrid1, '导出数据');    //暂时将导出的文件名称为“导出数据”(的execl文件)

finally

Screen.Cursor := crDefault;

end;

end;
-----------------------------------
delphi excel
https://blog.51cto.com/u_15127506/3820688

DELPHI控件DBGRID导出EXCEL格式相关推荐

  1. 计算机等级delphi取消,计算机二级DELPHI控件:DELPHI过滤记录的实现方法

    所谓过滤就是从表中选取满足特定条件的部分记录.过滤记录首先要通过Filter.属性设置过滤条件,然后将Filtered属性设置为True,即可从数据集组件连接的表中过滤出满足条件的记录. 1.Filt ...

  2. delphi 控件大全(确实很全)

    delphi 控件查询:Torry's Delphi Pages http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoCk ...

  3. delphi 控件大全

    delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org Tb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoC ...

  4. repeater导出excel html,Repeater控件数据导出Excel(附演示动画)

    本演示中,我们实现这个Repeater控件数据导出Excel的功能. 我们准备一个对象: Imports Microsoft.VisualBasic Namespace Insus.NET Publi ...

  5. 格式化显示在Label控件中的金额格式文本 (2)

    通过Label控件的Text属性可以设置控件内显示的文本,而通过对象的ToString方法可以格式化字符串显示的格式.本实例设定在Label控件中金额的显示格式,运行结果如图1所示. <?XML ...

  6. 将页面中表格数据导出excel格式的文件(vue)

    近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...

  7. Delphi控件-复合控件

    复合控件 复合控件是Delphi控件中非常重要的一种控件,复合控件就是将两个或两个以上的控件重新组合成一个新的控件.例如TspinEdit.TlabeledEdit.TDBNavigator等就是复合 ...

  8. 如何隐藏TPageControl Delphi控件的选项卡

    The TPageControl Delphi control displays a set of pages used to make a multiple-page dialog box. Eac ...

  9. 把数据库的表结构导出Excel格式

    把数据库的表结构导出Excel格式 话不多说先上代码! SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIM ...

最新文章

  1. 接收对象数组_示例: Bit数组
  2. windows内存管理概述
  3. python获取数据库的存储过程_python远程调用sqlserver存储过程记录
  4. Dockerfile语法简介(精)
  5. pycharm+python3.7+pyqt配置_Python3+Pycharm+PyQt5环境搭建步骤图文详解
  6. html5 ocr图片识别,OCR识别控件LEADTOOLS HTML5案例:整页OCR识别
  7. 解密车载语音识别架构 车载系统能听懂人说话?
  8. 机器学习_回归和分类的区别
  9. plc用c语言编程的好处,学习PLC编程的重要性
  10. 计算机晶体管怎么工作原理,晶体管的工作原理和实际作用
  11. LSD算法与LBD描述子的关系
  12. 【WEB服务器】什么是WEB服务器
  13. 电脑键盘部分按键失灵_Win7系统键盘部分按键失灵了怎么办?
  14. 每日简报 4月22日简报新鲜事 每天一分钟 了解新鲜事
  15. 汽车照明全国产化电子元件推荐方案
  16. 【阿里天猫精灵专题】TB-02 RGB冷暖灯控制
  17. wxpy 建群 err_code: 1 err_msg:
  18. 最新研究进展|肠道微生物组在改善抗癌治疗效果方面的强大作用
  19. 视频格式不符合怎么办?怎样进行视频格式转换?
  20. Ehab and Path-etic MEXs

热门文章

  1. 用css实现一个太极阴阳图,使用多个div块实现
  2. 什么是HRM 系统?浅谈HRM对企业办公的管理功能
  3. 川教版计算机三年级上册教案,川教版小学三年级上期信息技术教学计划
  4. OpenJudge NOI 1.9.14 铺地毯
  5. 非科班出身学习软件测试可以么
  6. js 根据id获取页面元素
  7. 第三方实验室LIMS管理系统
  8. 511遇见易语言循环遍历删除数组中重复成员方法
  9. 5G时代来临,一张思维导图描绘未来场景
  10. 【免费思维导图软件】万彩脑图大师教程 | 导出导入思维导图模板