AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Die letzte gefüllte Zeile finden

Ein Thema von sunshine-girl87 · begonnen am 10. Jul 2004 · letzter Beitrag vom 22. Aug 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Die letzte gefüllte Zeile finden

  Alt 10. Jul 2004, 16:06
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleServer, ExcelXP, COmObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    ExcelApplication1: TExcelApplication;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    function ermittleLetzteSpalteDerExcelDatei(dateiname: string): Integer;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    ShowMessage(IntToStr(ermittleLetzteSpalteDerExcelDatei(OpenDialog1.FileName)));
end;


function TForm1.ermittleLetzteSpalteDerExcelDatei(dateiname: string): Integer;
var
  myExcel, sheet: OLEVariant;
  zeile: Integer;
begin
  if dateiname <> '' then
  begin
    try
      // Create Excel-OLE Object
      myExcel := CreateOleObject('Excel.Application')
    except
      ShowMessage('Excel konnte nicht gestartet werden!');
      exit
    end;

    // Excel verbergen
    myExcel.Visible := false;

    // Öffnen der gewählten Arbeitsmappe
    myExcel.Workbooks.Open(dateiname);

    // Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet := myExcel.Workbooks[ExtractFileName(dateiname)].WorkSheets[1];

    // In order to know the dimension of the WorkSheet, i.e the number of rows
    // and the number of columns, we activate the last non-empty cell of it

    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;

    //myExcel.ActiveCell.Row;

   Result := myExcel.ActiveCell.Row;

   // Excel wieder schließen
   myExcel.DisplayAlerts := False;
   myExcel.Quit;
   myExcel := Unassigned;
   Sheet  := Unassigned;
  end;
end;
end.
so funktionierts!
auf dem formular ein OpedDialog und ein Button platzieren!

lg marcus
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#12

Re: Die letzte gefüllte Zeile finden

  Alt 10. Jul 2004, 16:34
Habe den Code jetzt so abgeändert, da die Excel-Datei schon bekannt, geöffnet und in Gebrauch ist. Die Fehlermeldung lautet:

Ungültiger Index.

Delphi-Quellcode:
var
  myExcel, sheet: OLEVariant;
  zeile: Integer;
begin
  myExcel := CreateOleObject('Excel.Application');

    // Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet := myExcel.Workbooks[ExtractFilePath(ParamStr(0))+'Mappe1.xls'].WorkSheets[1];

    // In order to know the dimension of the WorkSheet, i.e the number of rows
    // and the number of columns, we activate the last non-empty cell of it

    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;

    //myExcel.ActiveCell.Row;

   Result := myExcel.ActiveCell.Row;

   // Excel wieder schließen
   myExcel.DisplayAlerts := False;
   myExcel.Quit;
   myExcel := Unassigned;
   Sheet := Unassigned;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Die letzte gefüllte Zeile finden

  Alt 10. Jul 2004, 16:36
an wen wendest du dich jetzt @DJ-SPM?
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#14

Re: Die letzte gefüllte Zeile finden

  Alt 10. Jul 2004, 16:38
Achso, du weist das ja nicht... sunshine-girl ist meine Freundin. Ich war bei ihr und habe unter ihrem namen gepostet. Wir haben also die ganze Zeit miteinander geredet.

Habe es jetzt nochmal so probiert:

Delphi-Quellcode:
var myExcel:OleVariant;
begin
  myExcel := CreateOleObject('Excel.Application');
ExcelWorksheet1.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
ShowMessage(IntToStr(myExcel.ActiveCell.Row));
aber da kommt nur eine Zugriffsverletzung... Ich dreh bald durch
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#15

Re: Die letzte gefüllte Zeile finden

  Alt 10. Jul 2004, 21:11
hat sonst keiner eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#16

Re: Die letzte gefüllte Zeile finden

  Alt 10. Jul 2004, 23:27
Sorry, dass ich schon wieder pushe, aber ich brauche gaaanz dringend Hilfe. Bitte verzeiht mir das mal!
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#17

Re: Die letzte gefüllte Zeile finden

  Alt 10. Jul 2004, 23:53
So,

nachdem ich noch ein bissl probiert habe, kam ich zu folgendem Code:

Delphi-Quellcode:
procedure TForm4.Button4Click(Sender: TObject);
const
  xlCellTypeLastCell = $0000000B;
var myExcel, sheet:OleVariant;
    a:Integer;
begin
myExcel := CreateOleObject('Excel.Application');
[b]Sheet:=myExcel.Workbooks[ExtractFileName(ParamStr(0))+('Mappe1.xls')].Worksheet[1];[/b]
a:=Sheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
ShowMessage(IntToStr(a));
end;
Doch hier sagt er "Ungütliger Index" und markiert die fett gedruckte Zeile im Code!
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#18

Re: Die letzte gefüllte Zeile finden

  Alt 11. Jul 2004, 01:11
moin,

ist nur mal so geraten: hast dus schon mal mit Worksheet[0] probiert? soll ja vorkommen, das der Index bei 0 anfängt und das ist ja hier der einzige Index weit und breit.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#19

Re: Die letzte gefüllte Zeile finden

  Alt 11. Jul 2004, 09:17
wird nicht funktionieren....

in excel beginnt der index immer bei 1: egal ob zelle, worksheet, dateiname (mappe1.xls)....

  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#20

Re: Die letzte gefüllte Zeile finden

  Alt 11. Jul 2004, 10:18
also damit ich richtig verstehe: du hast excel bereits geöffnet und auch eine gefüllte Mappe geladen?
oder willst du excel öffnen unter angabe einer datei und daraus was laden bzw die letzte zeile angeben lassen?

was willst du denn überhaupt damit machen wenn man fragen darf?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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