DELPHI TSCTreeView的基本应用与FireDAC读取EXCEL文件数据设置

发布时间 2023-09-06 21:09:48作者: 一曲轻扬

本例需要读取excel中的数据,然后动态的添加到TSCTreeView控件当中 .

最终效果如下图:

 核心代码如下:

procedure TForm1.FormCreate(Sender: TObject);
var
  n: Integer;
  t: TTreeNode;
  I: Integer;
begin
  n := FDQuery1.RecordCount;
  if n > 0 then
  begin
    scTreeView1.Items.BeginUpdate;   //加快显示速度  ,这种语句是成对出现的,记得END
    t := scTreeView1.Items.AddFirst(nil, '全部');//添加根节点
    for I := 0 to n - 1 do
    begin
      scTreeView1.Items.AddChild(t, FDQuery1.FieldByName('名称').AsString);
      FDQuery1.Next;
    end;
    scTreeView1.Items.EndUpdate; //  END
  end;
end;

 顺便讲一下FireDAC连接EXCEL文件的设置

 

上面驱动设置那里,如果看不到后面的内容,可以把列拉宽:

 然后使用向导设置(强烈建议)

 

选择一个EXCEL文件后点确定.然后点测试.弹出登录窗口时,如果你的EXCEL没有设置密码,直接点确定就行,不用管它.有密码的自己看着办.

连接成功后,使用FQuery控件取数据.SQL语句的格式是:  seletc * from [sheet名称$]  .注意,表名后面要加"$"符号.也可以像数据库一下多表联查(仅限此工作簿内的工作表),比如:

select 
[核算项目-物料$].代码 as 物料代码  ,
[核算项目-物料$].名称,
[核算项目-物料$].助记码,
[核算项目-物料$].规格型号,
iif(isnull([即时库存$].F9),0,[即时库存$].F9) as 参考数量,
[即时库存$].备注
From
[核算项目-物料$] left join  [即时库存$] on    [核算项目-物料$].代码=  [即时库存$].物料代码
WHERE LEN( [核算项目-物料$].代码 )>3

上面这段SQL,使用到了两个工作表,一个是  [核算项目-物料] 一个是 [即时库存]