Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

Re: HTML parsen und in Excel 2007 Tabelle eintragen?

  Alt 23. Jan 2009, 14:42
Hallo,

befürchte, Du bist auf dem falschen Dampfer:

Range['A1:B4'].Select gehört eher zu einem ExcelWorkSheet.

Itmes 1.1 wird nicht gehen, allenfalls 1,1.

Probiere mal bitte, ob Du damit weiterkommst:
Delphi-Quellcode:
Uses ..., Excel97, ... ;
...
Var
          ea : TExcelApplication;
          ewb : TExcelWorkbook;
          ews1 : TExcelWorkSheet;
begin
  // Variabeln für die Verbindung zu Excel initialisieren
  ea := TExcelApplication.Create(Self);
  ewb := TExcelWorkbook.Create(Self);
  ews1 := TExcelWorksheet.Create(Self);
  // Verbindungsart zu Excel festlegen.
  ea.ConnectKind := ckNewInstance;
  ewb.ConnectKind := ckNewInstance;
  ews1.ConnectKind := ckNewInstance;
  // Diese ID wird zur Komunikation mit Excel benötigt.
  lcid := LOCALE_USER_DEFAULT;
  Try
    // Excel soll unsichtbar arbeiten.
    ea.Visible[lcid] := False;

// Dein Code...

    ews1.Range['A1','A1'].Select;
    Try
      // Gibts die Datei schon, dann löschen.
      If FileExists(sFileName) Then DeleteFile(sFileName);
      // Exceldatei speichern.
      ewb.SaveAs(sFilename,xlNormal,'','',False,False,xlNoChange,xlLocalSessionChanges,False,'','',lcid);
    Except
      // Wenn's Speichern der Exceltabelle schief ging,
      // die Tabelle ist in Excel geöffnet und kann vom Anwender
      // manuell gespeichert werden.
      On E : Exception Do Begin
        MessageDlg('Fehler beim Speichern der Excel-Tabelle ' + sFileName + '.'
        + #13 + e.Message,mtError,[mbok],0);
        // Excel soll sichtbar arbeiten.
        ea.Visible[lcid] := True;
      End;
    End;
    Try
      // Workbook schließen
      // Excel fragt nach, ob Änderungen gespeichert werden sollen
      ea.Workbooks.Close(lcid);
      ea.Quit;
    Except
      On E : Exception Do Begin
        MessageDlg('Fehler beim Schließen der Excel-Tabelle ' + sFileName + '.'
        + #13 + e.Message,mtError,[mbok],0);
        // Excel soll sichtbar arbeiten.
        ea.Visible[lcid] := True;
      End;
    End;
  Finally
    // Verbindung zu Excel trennen.
    ews1.Disconnect;
    ewb.Disconnect;
    ea.Disconnect;
    ews1.Free;
    ewb.Free;
    ea.Free;
  End;
Das ist jetzt ganz schnell per "Vererbung per Copy&Paste" aus einem Programm geklaut, daher kann ich nicht sagen, ob es so auf Anhieb funktionieren wird.
  Mit Zitat antworten Zitat