Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel formatieren! (https://www.delphipraxis.net/121180-excel-formatieren.html)

thiagojonas 23. Sep 2008 17:43


Excel formatieren!
 
Hallo mit diesem Code Exportieren ich die Daten einer StrinGrid in .xls!

Delphi-Quellcode:
uses
  ComObj;

function RefToCell(ARow, ACol: Integer): string;
begin
  Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
end;

function SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: string): Boolean;
const
  xlWBATWorksheet = -4167;
var
  Row, Col: Integer;
  GridPrevFile: string;
  XLApp, Sheet, Data: OLEVariant;
  i, j: Integer;
begin
  // Prepare Data
  Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
  for i := 0 to AGrid.ColCount - 1 do
    for j := 0 to AGrid.RowCount - 1 do
      Data[j + 1, i + 1] := AGrid.Cells[i, j];
  // Create Excel-OLE Object
  Result := False;
  XLApp := CreateOleObject('Excel.Application');
  try
    // Hide Excel
    XLApp.Visible := False;
    // Add new Workbook
    XLApp.Workbooks.Add(xlWBatWorkSheet);
    Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet.Name := ASheetName;
    // Fill up the sheet
    Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,
      AGrid.ColCount)].Value := Data;
    // Save Excel Worksheet
    try
      XLApp.Workbooks[1].SaveAs(AFileName);
      Result := True;
    except
      // Error ?
    end;
  finally
    // Quit Excel
    if not VarIsEmpty(XLApp) then
    begin
      XLApp.DisplayAlerts := False;
      XLApp.Quit;
      XLAPP := Unassigned;
      Sheet := Unassigned;
    end;
  end;
end;

// Example:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if SaveAsExcelFile(stringGrid1, 'My Stringgrid Data', 'c:\MyExcelFile.xls') then
    ShowMessage('StringGrid saved!');
end;
Wie kann ich die einzelnen Spaltenbreite verändern und wie kann ich die FixedRow so formatieren, dass sie "bold" ist in der Exceltabelle?

toms 23. Sep 2008 17:48

Re: Excel formatieren!
 
Hallo

Nach welchen Stichworten würdest du suchen?

Ich z.B nach Hier im Forum suchenSpaltenbreite

Für die 2. Frage z.B nach Bei Google suchenExcel bold Font

thiagojonas 23. Sep 2008 18:20

Re: Excel formatieren!
 
Danke! :o :-D

thiagojonas 23. Sep 2008 19:03

Re: Excel formatieren!
 
Äh... kann ich auch die Zellen über Delphi sperren lassen?

Chemiker 23. Sep 2008 23:04

Re: Excel formatieren!
 
Hallo thiagojonas,

das funktioniert eigentlich genauso wie mit VBA in Excel.

Delphi-Quellcode:
  XLApp.ActiveSheet.Unprotect(Password:= 'Test'); // Blattschutz freigeben mit Passwort
XLApp.ActiveSheet.Range['B2','C4'].Select;             // Diese Zellen sind nicht gesperrt.
XLApp.Selection.Locked:= FALSE;                      
XLApp.Selection.Interior.ColorIndex:= 15;              // Die freien Zellen einfärben
XLApp.ActiveSheet.Protect(Password:= 'Test');          // Blattschutz einstellen mit Passwort.
XLApp.ActiveSheet.EnableSelection:= xlUnlockedCells;
Bis bald Chemiker

thiagojonas 24. Sep 2008 12:58

Re: Excel formatieren!
 
Super Danke für deine Hilfe! :-D

thiagojonas 24. Sep 2008 13:08

Re: Excel formatieren!
 
Noch eine kurze Frage!
Habe halt die StringGrid und ich lasse sie ausdrucken. Leider wir die Tabelle nicht mit ausgedruckt, nur die Werte in der Tabelle.
Gibt es einen Befhel dafür?
Danke :)

Chemiker 24. Sep 2008 18:32

Re: Excel formatieren!
 
Hallo thiagojonas,

neue Frage (auch kurze) neuer Beitrag, die Suchenden werden es Dir Danken.

Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 Uhr.

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