我做了一个EXCEL模板,用EXCEL的批注做字段名的标识(例如"name"),然后往里插数据,请问怎么提取批注中的字段名?????//怎么写语句形成报表需要判断当前页是否结束,如果结束,开始下一页,需要重新写入中文字段名(例如“姓名”,“主题”等;)否则下一页不会形成中文字段名,有何高见?

解决方案 »

  1.   

    [email protected]   谢谢帮助
      

  2.   

    通过CreateOlbObject创建Excel.Application,然后通过单元格操作就可以啦。
    一个个单元格填写就行啦。function CreateExcelObj: Boolean;
    const
      RSCantCreate: array[0..EL] of string = ('ぃミ%S! ',
        'Can''t establish %S! ');
      RSCantAdd: array[0..EL] of string = ('ぃ糤%S! ', 'Can''t insert %S! ');
    var
      ErrMsg: string;
    begin
      try
        ErrMsg := Format(RSCantCreate[g_lang], ['Excel OLE Object']);
        xl := CreateOLEObject('Excel.Application');
        ErrMsg := Format(RSCantAdd[g_lang], ['Excel workbook']);
        xl.Visible := False;
        xl.WorkBooks.Add;
        xl.ActiveWindow.DisplayGridlines := True;
        Result := True;
      except
        MessageDlg(ErrMsg, mtError, [mbOK], 0);
        Result := False;
      end;
    end;function ReleaseExcelObj: Boolean;
    const
      RSCantFree: array[0..EL] of string = ('ぃ睦%S! ', 'Can''t release %S! ');
    begin
      Result := VarIsEmpty(xl);
      if Result then
        Exit;  xl.Visible := True;
      try
        xl := UnAssigned;
        Result := True;
      except
        MessageDlg(Format(RSCantFree[g_lang], ['MS Excel OLE object']), mtError,
          [mbOK], 0);
      end;
    end;    XL.Cells[1, 1] := 'name';这样赋值就行啦。
      

  3.   

    var 
       ExcelRange:Variant;
    ....
       try
         ExcelRange.find(What:=FindStr, MatchCase:=False).Activate;
         ExcelRow:=ExcelSheet.Application.ActiveCell.Row;
         ExcelCol:=ExcelSheet.Application.ActiveCell.Column;
         Result:=true;
       except
         Result:=False;
       end;
    如果找到返回ExcelRow, ExcelCol传入下面
      MySheet.Cells[I,J] := 'aaaa'