zoukankan      html  css  js  c++  java
  • LISTVIEW导出到EXCEL的通用函数

    LISTVIEW导出到EXCEL的通用函数
    2011-08-25         作者:李海彬   阅读:470

        使用Delphi开发数据库系统软件时,经常会使用Listview控件作为数据库的容器,而将数据导出到Excel中,也经常要用到.
        首先在FROM中添加一个BUTTON控件,一个LISTVIEW控件(设成vsReport),一个SaveDialog控件.
        下面给出将Listview控件直接导出到Excel表格中的通用代码:

    use comobj;
    //直接将LISTVIEWR控件作为入参.
    procedure TForm1.Excel_lv(lvpt:tlistview);
    var XL,SHEET:variant;
        SfileName:string;
        j,i:integer;
    BEGIN
    try
      if not  savedialog1.Execute then exit;
      sfilename:=savedialog1.FileName ;
      //创建一个EXCEL
      XL:=CreateOleObject('Excel.Application');
      XL.WorkBooks.add;
      //设SHEETS1为活动页
      SHEET:=XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1];
      //设置列宽,这个可以根据实际情况修改
      XL.rANGE['A1','A1'].cOLUMNwIDTH:=10;
      XL.rANGE['B1','B1'].cOLUMNwIDTH:=10;
      XL.rANGE['C1','C1'].cOLUMNwIDTH:=10;
      XL.rANGE['D1','D1'].cOLUMNwIDTH:=10;
      XL.rANGE['E1','E1'].cOLUMNwIDTH:=10;
      XL.rANGE['F1','F1'].cOLUMNwIDTH:=10;
      XL.rANGE['G1','G1'].cOLUMNwIDTH:=10;
      XL.rANGE['H1','H1'].cOLUMNwIDTH:=10;
      XL.rANGE['I1','I1'].cOLUMNwIDTH:=10;
      XL.rANGE['J1','J1'].cOLUMNwIDTH:=10;
      XL.rANGE['K1','K1'].cOLUMNwIDTH:=10;
      XL.rANGE['L1','L1'].cOLUMNwIDTH:=10;
      //第一行,将LISTVIEW的标题先导出到EXCEL
      for i:=1 to lvpt.Columns.Count  do
         sheet.cells[1,i]:=lvpt.Columns[i-1].Caption ;
      //将LISTVEW里各行列的内容导出
      for j:=0 to lvpt.Items.Count -1 do
        for i:=1 to lvpt.Columns.Count do
         begin   //由于将数字字符串如00011导出到EXCEL时,它会自动转成数值11,
                 //所以要在前面加'号,定义为字符串.
          if i=1 then sheet.cells[j+2,i]:=''''+lvpt.Items[j].Caption
                 else sheet.cells[j+2,i]:=''''+lvpt.Items[j].SubItems [i-2];
         end;
      //写入EXCEL文件
      XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1].SaveAs(SFilename);
      XL.Quit;
    except
      messagebox(handle,'对不起,您可能没有安装Excel或文件目录错误!','错误',MB_OK+MB_ICONSTOP);
      XL.WORKBOOKS[XL.WorkBooks.Count].SHEETS[1].SaveAs(SFilename);
      XL.Quit;
    end;
    end;
    //执行
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      excel_lv(listview1);
    end;

      以上代码由于是对所有的LISTVIEW通用的,所以有些地方处理还是有点不好,这是没有办法的事.

  • 相关阅读:
    转(一万小时定律的文章): const 与 readonly区别...
    项目中报错邮件方法
    Windows Phone(一) 正式开发之前的准备资料(主要注册开发者账号,手机解锁,激活码,程序部署)
    转(ASP.NET页面缓存)
    部署XAP时,部署工具提示部署无效,求解决!
    jQuery 1
    DOMform
    jQuery 2 一些常用的函数
    jQuery 6 层次选择器
    jQuery 3 对象转换
  • 原文地址:https://www.cnblogs.com/hssbsw/p/2533071.html
Copyright © 2011-2022 走看看