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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值