delphi XE LISTVIEW导出EXCEL  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi XE LISTVIEW导出EXCEL


1、调用

listtoexcel('abcd', jjd_list, 5);//第一个参数没什么用,随便写的。第二个参数就是LISTVIEW。第三个参数代表哪列是数值型。

2、代码

function listtoexcel(ttname: string; tt: TListView; num_num: integer): string;
var
  h, k, i: integer;
  Excelid: OleVariant;
  Y, X: integer;
  Temsheet: OleVariant; // 工作薄
  FWorkBook: OleVariant; // 工作表
  // FExcel:OleVariant; //excel应用程序
begin
  try
    Excelid := CreateOLEObject('Excel.Application');
  except
    Application.MessageBox('Excel没有安装!', '提示信息', MB_OK + MB_ICONASTERISK +
      MB_DEFBUTTON1 + MB_APPLMODAL);
    Exit;
  end;
  try
    k := tt.Items.Count;
    h := tt.Columns.Count;
    Excelid.Visible := False; // 是否显示
 
    FWorkBook := Excelid.WorkBooks.Add(-4167); // 新的工作表
    // Temsheet := FWorkBook.Worksheets.Add;
    // Temsheet.Select;
 
    // Temsheet.Name:='';
    // Temsheet.Columns[1].ColumnWidth:=30;//设置列宽度
    // Temsheet.Columns[2].ColumnWidth:=30;
 
    // Temsheet:=Excelid.WorkBooks.Add;
    // Excelid.worksheets[1].range['A1:c1'].Merge(True);
    // Excelid.WorkSheets[1].Cells[1, 1].Value := ttname;
    // Excelid.worksheets[1].Range['a1:a1'].HorizontalAlignment := $FFFFEFF4;
    // Excelid.worksheets[1].Range['a1:a1'].VerticalAlignment := $FFFFEFF4;
    // 写表头,以LISTVIEWS列名为准
    for i := 0 to h - 1 do
    begin
      Excelid.Worksheets[1].Cells[1, i + 1].Value :=
        tt.Columns.Items[i].Caption;
 
    end;
    // Temsheet:=FWorkBook.Worksheets.Add;
    { Temsheet.Name:='利润统计';
      Temsheet.Select;
      Temsheet.Columns[1].ColumnWidth:=4;//设置列宽度
      Temsheet.Columns[2].ColumnWidth:=10;
      Temsheet.Columns[3].ColumnWidth:=16; }
    // Excelid.WorkSheets[1].Activate;
    // 开始写内容
    // Excelid.ActiveSheet.Columns[2].ColumnsWidth := 5;
    // Excelid.ActiveSheet.Columns[1].Width := 20;
    // Excelid.WorkSheets[1].Columns[1].ColumnsWidth := 20;
    for X := 2 to k + 1 do
    begin
      Excelid.Cells.item[X, 1].numberformatlocal := '@';
      Excelid.Worksheets[1].Cells[X, 1].Value := tt.Items.item[X - 2].Caption;
      for Y := 2 to h do
      begin
        if num_num = Y then
        begin
          Excelid.Cells.item[X, Y].numberformatlocal := '0.00_ ';
        end
        else
        begin
          Excelid.Cells.item[X, Y].numberformatlocal := '@';
        end;
 
        Excelid.Worksheets[1].Cells[X, Y].Value := tt.Items.item[X - 2]
          .SubItems[Y - 2];
      end;
    end;
  except
    // Application.MessageBox('导入数据出错!请检查文件的格式是否正确!', '提示信息', MB_OK + MB_ICONASTERISK + MB_DEFBUTTON1 + MB_APPLMODAL);
  end;
  Excelid.Visible := True; // 是否显示
end;
 

原文链接:https://blog.csdn.net/weixin_44387646/article/details/90402644

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.034233808517456 seconds