Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringGrid mit Spalten nach Excel exportieren (https://www.delphipraxis.net/69363-stringgrid-mit-spalten-nach-excel-exportieren.html)

ErdNussLocke 18. Sep 2008 11:33

Re: StringGrid mit Spalten nach Excel exportieren
 
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 :)

nahpets 18. Sep 2008 11:48

Re: StringGrid mit Spalten nach Excel exportieren
 
Hallo,

muss das Numberformat nicht mit hierhin?

Delphi-Quellcode:
XLApp.Workbooks[M].Cells.Select;
XLApp.Workbooks[M].Cells.EntireColumn.AutoFit;
XLApp.Workbooks[M].Cells.Numberformat := '@';
XLApp.Workbooks[M].Range['A1','A1'].Select;
und das ganze direkt vorm Speichern?

Stephan

ErdNussLocke 18. Sep 2008 13:44

Re: StringGrid mit Spalten nach Excel exportieren
 
Geht auch nicht (Wenn ich es richtig gemacht hab)

Delphi-Quellcode:
          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;

    XLApp.Workbooks[M].Cells.Select;
    XLApp.Workbooks[M].Cells.EntireColumn.AutoFit;
    XLApp.Workbooks[M].Cells.Numberformat := '@';
    XLApp.Workbooks[M].Range['A1','A1'].Select;

    //Save Excel Worksheet
    try
      for M := 1 to BookCount do
      begin
          SaveFileName :=Copy(FileName,1,Pos('.',FileName)-1) +
          Copy(FileName,Pos('.',FileName),
          Length(FileName)-Pos('.',FileName)+1);
          if fileexists(pfadE+Form1.EExportname.text+'.xls')=true
           then deletefile(pfadE+Form1.EExportname.text+'.xls');
          XLApp.Workbooks[M].SaveAs(SaveFileName);
      end;

toms 18. Sep 2008 15:59

Re: StringGrid mit Spalten nach Excel exportieren
 
Zitat:

Zitat von ErdNussLocke
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?

Das Autofit muss schon statt finden, nachdem die Zellen befüllt wurden.



Delphi-Quellcode:
   XLApp.Worksheets[N].Select;
          XLApp.Workbooks[M].Worksheets[N].Name := SheetName + IntToStr(N);
          //Zellen als String Formatieren

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

          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;
    
      SelRange.Select;
          XLApp.Selection.Columns.AutoFit;

ErdNussLocke 19. Sep 2008 10:19

Re: StringGrid mit Spalten nach Excel exportieren
 
Perfekt :) Danke euch allen!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz