Bonjour,

j'ai cette fonction qui me permet d'exporter des données vers un fichier excel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function TFPointeuse.SaveAsExcelFile(ADataSet: TDataSet; AFileName: string): Boolean;
const
  {$J+} CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0); {$J-}
  CXlsEof: array[0..1] of Word = ($0A, 00);
var
  FStream: TFileStream;
  ICol, iRow: Integer;
 
    procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
      const AValue: string);
    var
      L: Word;
    const
      {$J+}
      CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
      {$J-}
    begin
      L := Length(AValue);
      CXlsLabel[1] := 8 + L;
      CXlsLabel[2] := ARow;
      CXlsLabel[3] := ACol;
      CXlsLabel[5] := L;
      XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel));
      XlsStream.WriteBuffer(Pointer(AValue)^, L);
    end;
begin
  Result := False;
  FStream := TFileStream.Create(PChar(AFileName), fmCreate or fmOpenWrite);
  try
    CXlsBof[4] := 0;
    FStream.WriteBuffer(CXlsBof, SizeOf(CXlsBof));
    ADataSet.DisableControls;
    ADataSet.first;iRow := 0;
     while not ADataSet.EOF do
     begin
        iRow := iRow+1;
        for ICol := 0 to ADataSet.FieldCount - 1 do
          XlsWriteCellLabel(FStream, ICol+1, iRow,ADataSet.Fields[ICol].AsString);
        ADataSet.Next;
     end;
     ADataSet.DisableControls;
 
 
    FStream.WriteBuffer(CXlsEof, SizeOf(CXlsEof));
    Result := True;
  finally
    FStream.Free;
  end;
end;
Le classeur est généré avec une seule seule feuille.
Ma question est : Comment puis je la modifiée pour avoir 3 feuille dedans ?