Excel的sheet1表中有N个列,第一列的数据是字段名,分别是学号 姓名  性别  年龄……,表中数据如下:学号  姓名  性别  年龄  ……
001   张三   男    20   ……
002   李四   男    19   ……
003   王五   女    18   ……我想将所有字段名(学号  姓名  性别  年龄……)读入到ComboBox的列表中,如何实现?ComboBox下拉列表数据如下:
  学号  
  姓名  
  性别  
  年龄  
  ……

解决方案 »

  1.   

    你的意思是第一的数据是字段名吧?就是循环取第一行所有列呗
    try
        FilePath := 'G:\新建.xls';
        Excel := CreateOLEObject('Excel.Application');
        WorkBook := Excel.WorkBooks.Open(FilePath);
        WorkSheet := WorkBook.WorkSheets.Item[1];  //打开sheet1
        for I := 1 to WorkSheet.UsedRange.Columns.Count  do  //循环列
        begin
          ShowMessage(WorkSheet.Cells[1, I]);     //取第一行所有列的值
        end;
      finally
        WorkBook.Close;
        Excel := Null;
      end;
    引用ComObj单元
      

  2.   

    showmessage 处换成cbb1.Items.Add(WorkSheet.Cells[1, I])就是你的要求
      

  3.   

    var
      Excel: Variant;
      WorkBook: Variant;
      WorkSheet: Variant;
      FilePath: string;
      I : Integer;
      

  4.   


      FileName := 'C:\1234.xls';
      ADOConnection1.Connected := False;
      ADOConnection1.ConnectionString :=
        'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' + 'Data Source=' +
        FileName +
        ';Mode=Share Deny None;Extended Properties="Excel 8.0;IMEX=1";' + //
        'Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";';  ADOConnection1.Connected:=True;
      ADOConnection1.GetFieldNames('Sheet1$',ComboBox1.Items);
      

  5.   

      FileName := 'C:\1234.xls';
      ADOConnection1.Connected := False;
      ADOConnection1.ConnectionString :=
      'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' + 'Data Source=' +
      FileName +
      ';Mode=Share Deny None;Extended Properties="Excel 8.0;IMEX=1";' + //
      'Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";';  ADOConnection1.Connected:=True;
      ADOConnection1.GetFieldNames('Sheet1$',ComboBox1.Items);