vor lauter Bäumchen verstehe ich den Wald nicht mehr und brauche jetzt hilfe .
Was ich machen Möchte:
-Einlesen einer .xls Datei
-Anzeige der Tabellen (Worksheet)-Liste
-Auswahl einer einzelnen Tabelle
-Zugriff (lesend) auf diverse Zellen in dieser Tabelle
Meine Tabellen sind von Primitivster Natur (sprich nur Strings und Zahlen, keine Formeln, Bilder oder sonst weder Schnickschnack).
Das Ganze würde ich am liebsten in einer Klasse machen welches ungefähr folgendes Interface hat:
Code: Alles auswählen
Type
TXLS = Class()
public
function LoadFromFile(Filename:String):Boolean; // .slx Laden
Function GetWorkSheetList():TStringlist; // Liste aller Tabellen
Function SetWorkSheetByName(Name:String):Boolean; // Auswahl einer Tabelle, false wenn nicht möglich
Function GetRowCount():Integer; // Ausgabe der Zeilenzahl, der ausgewählten Tabelle (0 falls noch nichts ausgewählt wurde)
Function GetColCount():Integer;// Ausgabe der Spaltenzahl, der ausgewählten Tabelle (0 falls noch nichts ausgewählt wurde)
Function GetCell(r,c:integer):String;// Rückgabe des Zellenwertes als String
end;
Also habe ich dieses installiert und als Requirements in mein Projekt eingetragen, einen Button gesetzt und eine .xls Datei mit 3 Arbeitsblättern erstellt (siehe Anlage).
Dann kommt folgender Test-Code:
Code: Alles auswählen
Procedure TForm1.Button2Click(Sender: TObject);
Var
f: String;
WB: TsWorkbook;
s: String;
i: Integer;
Begin
f := 'C:\Temp\test.xls';
wb := TsWorkbook.Create;
Try
wb.ReadFromFile(f);
Except
On av: exception Do Begin
showmessage(av.Message);
wb.free;
exit;
End;
End;
s := '';
For i := 0 To wb.GetWorksheetCount - 1 Do Begin
s := s + wb.GetWorksheetByIndex(i).Name;
End;
showmessage(s);
End;
Das Beispiel "fpsctrls" kann ich compilieren und die Widgets zeigen auch den Korrekten Inhalt des .xls Files an. Doch das muss doch auch ohne gehen, ...
Könnt ihr mir sagen was ich hier übersehen / vergessen habe, dass ich nicht mal die 3 Tabellennamen anzeigen kann ?