Delphi读取并用ListView打印输出Excel表中数据

Delphi7读取并用ListView打印输出Excel表中数据

我自己也是才开始学的,想做这么个功能在网上看了蛮多案例,感觉缺了很多细节,很多案例不能说是差不多吧,完全就是一模一样,属于是你抄我我抄他了。对新手不太友好,希望这个能帮助到你,也希望大佬多指点指点,有问题的话可以留言我经常在线。(有用的话麻烦点个赞,我是新手,也希望大佬们多多指点)

这是ListView组件所在的位置。
《Delphi读取并用ListView打印输出Excel表中数据》
按钮我这里就不多说了Button的位置应该都知道。

这是我的窗体样式
《Delphi读取并用ListView打印输出Excel表中数据》

上代码

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ComObj, ExtCtrls, Grids, DBGrids;
  
  { ComObj, ExtCtrls, Grids, DBGrids
  这几个是我看了几个案例加的,具体作用我也不太清楚}

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListView1: TListView;
    procedure Button1Click(Sender: TObject);
    procedure FormClick(Sender: TObject);
  private
    {  Private declarations }
  public
    {  Public declarations }
  end;

var
  Form1: TForm1;

implementation

{ $R *.dfm}
var
XlsRead:OleVariant;//这个是必备的

procedure TForm1.FormClick(Sender: TObject);
begin
	//这两个是让你的ListView1显示表格的
  ListView1.ViewStyle:=vsReport;
  ListView1.GridLines:=True;
end;

{  按钮 }
procedure TForm1.Button1Click(Sender: TObject);
var
  listItems:TListItem;
  { 总行数   总列数    列    行}
  rowcount, colcount, icol, irow:Integer;
  atime:string;//变量
begin
  try
    XlsRead:=CreateOleObject('Excel.Application');
  except
    Exit;
  end;
  try
    XlsRead.WorkBooks.Open('E:\aa.xlsx');//打开工作簿
    rowcount:=XlsRead.worksheets[1].UsedRange.Rows.Count;//获取表总行数、
    colcount:=XlsRead.worksheets[1].UsedRange.Columns.Count;//获取表总列数
    atime:='';
    for icol:=1 to colcount do//按行打印表中数据
    begin
      if icol=1 then //判断是否是标题行
      begin
        for irow:=1 to rowcount do//循环获取标题行
        begin
          ListView1.Columns.Add;//添加列
          atime:=XlsRead.Cells[icol,irow].Value;//从xlsx中读取标题行数据
          ListView1.Columns.Items[irow-1].Caption:=atime;//添加到数据项
        end;
      end else
      begin
        listItems:=ListView1.Items.Add;//添加一行
        atime:=XlsRead.Cells[icol,1].Value;//获取表中第一列 数据
        listItems.Caption:=atime;//打印第一列
        for  irow:=2 to rowcount do//从第二列开始循环添加
        begin
          atime:=XlsRead.Cells[icol,irow].Value;//读取表中 某行的所有列
          listItems.SubItems.Add(atime);//按列添加数据
        end;
      end;
    end;
  finally
    XlsRead.WorkBooks.Close;//关闭工作簿
    XlsRead.Quit;//退出
    XlsRead:=Unassigned;//网上看的说这样关闭的更干净
  end;

end;

end.

运行结果:这里的蓝色表格样式其实就是改了一个背景颜色(Color)。
《Delphi读取并用ListView打印输出Excel表中数据》
谢谢观看!

    原文作者:程序员小斌
    原文地址: https://blog.csdn.net/m0_50736624/article/details/121895218
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞