Einzelnen Beitrag anzeigen

ErdNussLocke

Registriert seit: 30. Jan 2006
104 Beiträge
 
#11

Re: StringGrid mit Spalten nach Excel exportieren

  Alt 18. Sep 2008, 12:33
hmm schaffs net

Also die Variable ist hinzugefügt

An welche Stelle muss denn

Delphi-Quellcode:
SelRange := XLApp.Workbooks[M].Worksheets[N].Range[RefToCell(1, 1), RefToCell(SheetRowCount, SheetColCount)];
SelRange.Select;
XLApp.Selection.NumberFormat := '@';
genau hin?

Würde es an die NumberFormat Stelle schreiben:

Delphi-Quellcode:
//Sheets befüllen
    for M := 1 to BookCount do
    begin
        for N := 1 to SheetCount do
        begin
          //Daten aus Grid holen
          Data := VarArrayCreate([1, Grid.RowCount, 1, SheetColCount], varVariant);
          for I := 0 to SheetColCount - 1 do
            for J := 0 to SheetRowCount - 1 do
              if ((I+256*(N-1)) <= Grid.ColCount) and ((J+65536*(M-1)) <= Grid.RowCount) then
                Data[J + 1, I + 1] := Grid.Cells[I+256*(N-1), J+65536*(M-1)];

          XLApp.Worksheets[N].Select;
          XLApp.Workbooks[M].Worksheets[N].Name := SheetName + IntToStr(N);
          //Zellen als String Formatieren
 //Diese dann weg? //XLApp.Workbooks[M].Worksheets[N].Range[RefToCell(1, 1), RefToCell(SheetRowCount,
                           //SheetColCount)].Select;
          SelRange := XLApp.Workbooks[M].Worksheets[N].Range[RefToCell(1, 1), RefToCell(SheetRowCount, SheetColCount)];
          SelRange.Select;
          XLApp.Selection.NumberFormat := '@';
          XLApp.Workbooks[M].Cells.EntireColumn.AutoFit;
          XLApp.Workbooks[M].Worksheets[N].Range['A1'].Select;
          //Daten dem Excelsheet übergeben
          Sheet := XLApp.Workbooks[M].WorkSheets[N];
          Sheet.Range[RefToCell(1, 1), RefToCell(SheetRowCount,SheetColCount)].Value := Data;
        end;
    end;
und das Autofit dann hinter das Befüllen?

Delphi-Quellcode:
//...
          XLApp.Selection.NumberFormat := '@';
          XLApp.Workbooks[M].Cells.EntireColumn.AutoFit;
          XLApp.Workbooks[M].Worksheets[N].Range['A1'].Select;
          //Daten dem Excelsheet übergeben
          Sheet := XLApp.Workbooks[M].WorkSheets[N];
          Sheet.Range[RefToCell(1, 1), RefToCell(SheetRowCount,SheetColCount)].Value := Data;
        end;
    end;
   SelRange.Select;
   XLApp.Selection.Columns.AutoFit;
So hab ich es versucht, ohne Erfolg Wäre super wenn das noch recht gerückt wird

Danke sehr
  Mit Zitat antworten Zitat