从DBGrid,StringGrid导出Excel

2016-02-19 19:31 32 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的从DBGrid,StringGrid导出Excel懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

 

  procedure TDM.CopyDbDataToExcel(Target: TDBGridEh;mb,FileName: string);
  var
  iCount, jCount: Integer;
  XLApp: Variant;
  Sheet: Variant;
  begin
  Screen.Cursor := crHourGlass;
  if not VarIsEmpty(XLApp) then
  begin
   XLApp.DisplayAlerts := False;
   XLApp.Quit;
   VarClear(XLApp);
  end;
  //--------------------------选择模板------
  // CopyFile(pChar(Trim(ExtractFilePath(Application.ExeName))+mb+'.xls'),pChar(FileName+'1.xls'),false);
  //------------------------
  //通过ole创建Excel对象
  try
   XLApp := CreateOleObject('Excel.Application');
  except
   Screen.Cursor := crDefault;
   Exit;
  end;
  if mb = '统计-项目信息前' then
    XLApp.WorkBooks.Add[Trim(ExtractFilePath(Application.ExeName))+mb+'.xls']    //你要把数据放在那里啊,先生成个文件在e:1.xls
  else
   XLApp.WorkBooks.Add;
  XLApp.WorkBooks[1].WorkSheets[1].Name := 'sheet1';
  Sheet := XLApp.Workbooks[1].WorkSheets['sheet1'];
  if not Target.DataSource.DataSet.Active then
  begin
   Screen.Cursor := crDefault;
   Exit;
  end;
  Target.DataSource.DataSet.first;

  for iCount := 0 to Target.Columns.Count - 1 do
  begin
   Sheet.cells[1, iCount + 1] := trim(Target.Columns.Items[iCount].Title.Caption);
  end;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  jCount := 1;
  while not Target.DataSource.DataSet.Eof do
  begin

   for iCount := 0 to Target.Columns.Count - 1 do   //
   begin
    if iCount = 0 then
     Sheet.cells[jCount + 1, iCount + 1] := IntToStr(jCount)
    else
     Sheet.cells[jCount + 1, iCount + 1] := trim(Target.Columns.Items[iCount].Field.AsString);
   end;
  Inc(jCount);
  Target.DataSource.DataSet.Next;
  end;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  //--------------------可以在此添加Excel的宏-----------

  XLApp.ActiveWorkbook.SaveAs(FileName:=FileName);                                                                                                            ;
  Screen.Cursor := crDefault;
  XLApp.ActiveWorkbook.Close;
  end;
  -----------------------------------------StringGridToExcel

  procedure TDM.CopySGDataToExcel(Target: TStringGrid;FileName: string);
  var
  iCount, jCount: Integer;
  XLApp: Variant;
  Sheet: Variant;
  begin
  Screen.Cursor := crHourGlass;
  if not VarIsEmpty(XLApp) then
  begin
  XLApp.DisplayAlerts := False;
  XLApp.Quit;
  VarClear(XLApp);
  end;
  //通过ole创建Excel对象
  try
  XLApp := CreateOleObject('Excel.Application');
  except
  Screen.Cursor := crDefault;
  Exit;
  end;
  XLApp.WorkBooks.Add;    //你要把数据放在那里啊,先生成个文件在e:1.xls
  XLApp.WorkBooks[1].WorkSheets[1].Name := 'sheet1';
  Sheet := XLApp.Workbooks[1].WorkSheets['sheet1'];
  Target.Row := 0;
  for iCount := 0 to Target.RowCount - 1 do
  begin
   for jCount := 0 to Target.ColCount - 1 do
     Sheet.cells[iCount + 1, jCount + 1] := Target.Cells[jCount,iCount];
   Target.Row := iCount;
  end;
  XLApp.ActiveWorkbook.SaveAs(FileName:=FileName);
  Screen.Cursor := crDefault;
  XLApp.ActiveWorkbook.Close;
  end;


来源:https://www.tulaoshi.com/n/20160219/1621221.html

延伸阅读
在 OnSelectCell事件处理程序中,加入: (所有的列均设成可修改的) if Col mod 2 = 0 thengrd.Options := grd.Options + [goEditing]elsegrd.Options := grd.Options - [goEditing];
在网上的导出为EXCEL文档的方法大概是这样的 DimiAsInteger,jAsInteger DimmyexcelAsNewExcel.Application DimmybookAsNewExcel.Workbook DimmysheetAsNewExcel.Worksheet Setmybook=myexcel.Workbooks.Add'添加一个新的BOOK Setmysheet=mybook.Worksheets.Add'添加一个新的SHEET 'Fori=1Tomyre...
标签: Web开发
HTML   HEAD     titleWEB页面导出为EXCEL文档的方法     /title   /HEAD body BR table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" bgcolor = "#61FF13" TR style="text-align : center;"  TD单元格A/TD  TD单元格A/TD  TD单元格A/TD  TD单元格A/T...
----------VB.NET 导出数据到EXCEL中------------- 在引用当中引入Microsoft Excel 11.0 Object Library Dim oExcel As New Excel.ApplicationDim obook As Excel.WorkbookDim oSheet As Excel.WorksheetDim DataArray(2000, 2000) As Integerobook = oExcel.Workbooks.Open("c:\1.xls")oSheet = obook.Worksheets(1)...
标签: excel
Excel系统导出的数据前面有小逗号   Excel系统导出的数据前面有小逗号 Excel提取指定条件的不重复值   Excel提TuLaoShi.com取指定条件的不重复值 Ewww.tulaoshi.comxcel多维条形图   Excel多维条形图

经验教程

92

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部