also ich habe ein solches Programm bereits entwickelt wleches in beide Richtungen funktioniert aber mit D5E
//Programmier-Baukasten für Excel
unit excelU;
Interface
uses SysUtils;
Type
TUsExcel = class(TObject)
Private
Excel1 : variant;
ZwischenStr : String;
public
// Inhalt: string;
//Starten von Excel
function StartExcel:Boolean;
//Anzeigen von Excel
function ZeigenExcel:Boolean;
//Schliessen von Excel
function SchliessenExcel:Boolean;
//Oeffnen einer Tabelle
//Filename enthält den Kompletten Pfad der Tabelle als String
function TabOeffnenExcel(Filename:String):Boolean;
//Ruft den Öffnendialog von Excel auf
function DateiimExcelOeffnenExcel:Boolean;
//Eine Arbeitmappe neu anlegen
function MappeNeuExcel:Boolean;
//Eine Tabelle in der Aktullen Arbeitsmappe anlegen
function TabNeuExcel:Boolean;
//Eine bestimmte Tabelle in der Arbeitsmappe aktivieren
//TabellenName ist der Name der Tabelle als String
function TabAktivierenExcel(TabellenName:OLEVariant):Boolean;
//Daten als String nach Excel übergeben
//Zeile,Spalte als Integer; Daten als String
function DatenNachExcel(Zeile,Spalte:integer;Daten:String):Boolean;
//Speichern einer Tabelle
function TabSpeichernExcel(DateiName:String):Boolean;
//Arbeitsmappe Schliessen
function MappeSchliessenExcel:Boolean;
//Aktive Tabelle schliessen
function TabSchliessenExcel:Boolean;
//Formatieren eine Zelle mit einem Bestimmten Format
function ZellenFormatierenExcel(Zeile,Spalte:integer;Format:string):Boolean;
//Formatieren einer Spalte mit einem Bestimmten Format
//Spalte ist vom Typ Integer und gibt die Spalte an die Formatiert werden soll
//Format ist vom Typ String und gibt das Format an für die Spalte
function SpalteFormatierenExcel(Spalte:integer;Format:String):Boolean;
//Formatieren einer Zeile mit einem Bestimmten Format
//Zeile ist Vom Typ Integer und gibt die Zeile an die Formatiert werden soll
//Format ist vom Typ String und gibt das Format an für die Zeile
function ZeileFormatierenExcel(Zeile:integer;Format:String):Boolean;
function Breite_HoeheExcel(Spalte:integer):Boolean;
function LesenausExcel(Zeile:Integer;Spalte:Integer):string;
function ZeilenEndeExcel(Zeile:Integer;Spalte:Integer):Boolean;
function NachBegriffSuchenExcel(Zeile:Integer;Spalte:Integer;Begriff:string):Boolean;
function TabellenGroesseExcel:longint;
end;
implementation
uses ComObj,Dialogs,Windows,ActiveX;
//Schliessen von Excel
function TUsExcel.SchliessenExcel:Boolean;
begin
try
Excel1.Quit;
Excel1 := Unassigned;
except
Showmessage('Kann Excel nicht schliessen!');
Exit;
end;
end;
//Anzeigen von Excel
function TUsExcel.ZeigenExcel: Boolean;
begin
Try
Excel1.Visible := True;
except
Showmessage('Kann Excel nicht anzeigen!');
Exit;
end;
end;
//Starten von Excel
function TUsExcel.StartExcel:Boolean;
begin
Try
Excel1 := CreateOleObject('Excel.Application');
except
Showmessage('Excel konnte nicht gestartet werden!');
Exit;
end;
end;
//Oeffnen einer Tabelle
//Filename enthält den Kompletten Pfad der Tabelle als String
function TUsExcel.TabOeffnenExcel(Filename:String):Boolean;
begin
TabOeffnenExcel := True;
Try
Excel1.Workbooks.Open(Filename);
except
// Showmessage('Kann Datei nicht öffnen!');
TabOeffnenExcel := False;
end;
end;
//eine Arbeitmappe neu anlegen
function TUsExcel.MappeNeuExcel:Boolean;
begin
Try
Excel1.Workbooks.Add;
except
Showmessage('Kann keine neu Arbeitsmappe anlegen!');
Exit;
end;
end;
//Speichern einer Tabelle
function TUsExcel.TabSpeichernExcel(DateiName:String):Boolean;
begin
Try
Excel1.ActiveWorkBook.SaveAs(DateiName);
except
Showmessage('Kann Tabelle nicht speichern!');
Exit;
end;
end;
//Arbeitsmappe Schliessen
function TUsExcel.MappeSchliessenExcel:Boolean;
begin
Try
Excel1.WorkBooks.Close;
except
Showmessage('Kann Arbeitsmappe nicht schliessen!');
Exit;
end;
end;
//Eine Tabelle in der Aktullen Arbeitsmappe anlegen
function TUsExcel.TabNeuExcel:Boolean;
begin
Try
Excel1.Worksheets.Add;
except
Showmessage('Kann keine neue Tabelle einfügen!');
Exit;
end;
end;
//Eine bestimmte Tabelle in der Arbeitsmappe aktivieren
//Tabellen Name ist der Name der Tabelle als String
function TUsExcel.TabAktivierenExcel(TabellenName:OLEVariant):Boolean;
begin
Try
Excel1.Worksheets.Item[TabellenName].Activate;
except
Showmessage('Kann Tabelle nicht Aktivieren!');
Exit;
end;
end;
//Aktive Tabelle schliessen
function TUsExcel.TabSchliessenExcel:Boolean;
begin
Try
Excel1.ActiveWorksheets.close;
except
Showmessage('Kann Tabelle nicht schliessen!');
Exit;
end;
end;
//Daten als String nach Excel übergeben
//Zeile,Spalte als Integer; Daten als String
function TUsExcel.DatenNachExcel(Zeile,Spalte:integer;Daten:String):Boolean;
begin
Try
Excel1.Cells[Zeile,Spalte].Value := Daten;
except
Showmessage('Kann Daten nicht übernehmen!');
Exit;
end;
end;
//Ruft den Öffnendialog von Excel auf
function TUsExcel.DateiimExcelOeffnenExcel:Boolean;
begin
Try
Excel1.FindFile;
except
Showmessage('Kann Öffnen-Dialog nicht aufrufen!');
Exit;
end;
end;
//Formatieren eine Zelle mit einem Bestimmten Format
function TUsExcel.ZellenFormatierenExcel(Zeile,Spalte:integer;Format:string):Boolean;
begin
Try
Excel1.Cells[Zeile,Spalte].Numberformat := Format;
except
Showmessage('Kann Zelle nicht formatieren!');
Exit;
end;
end;
//Formatieren einer Spalte mit einem Bestimmten Format
//Spalte ist vom Typ Integer und gibt die Spalte an die Formatiert werden soll
//Format ist vom Typ String und gibt das Format an für die Spalte
function TUsExcel.SpalteFormatierenExcel(Spalte:integer;Format:String):Boolean;
begin
try
Excel1.Columns[Spalte].NumberFormat := Format;
except
Showmessage('Kann Spalte nicht Formatieren!');
Exit;
end;
end;
//Formatieren einer Zeile mit einem Bestimmten Format
//Zeile ist Vom Typ Integer und gibt die Zeile an die Formatiert werden soll
//Format ist vom Typ String und gibt das Format an für die Zeile
function TUsExcel.ZeileFormatierenExcel(Zeile:integer;Format:String):Boolean;
begin
try
Excel1.Rows[Zeile].NumberFormat := Format;
except
Showmessage('Kann Zeile nicht Formatieren!');
Exit;
end;
end;
function TUsExcel.Breite_HoeheExcel(Spalte:integer):Boolean;
begin
try
Excel1.columns[Spalte].autofit;
except
Showmessage('Kann Spalte nicht anpassen!');
exit;
end;
end;
function TUsExcel.LesenausExcel(Zeile:Integer;Spalte:Integer):string;
begin
LesenausExcel:=Excel1.cells[Zeile,Spalte].Value;
end;
function TUsExcel.ZeilenEndeExcel(Zeile:Integer;Spalte:Integer):Boolean;
begin
ZwischenStr:= Excel1.cells[zeile,Spalte].Value;
if ZwischenStr = 'SK3' then begin
ZeilenEndeExcel := True;
end
else begin
ZeilenEndeExcel := False;
end;
end;
function TUsExcel.NachBegriffSuchenExcel(Zeile:integer;Spalte:integer;Begriff:string):Boolean;
begin
ZwischenStr:= Excel1.cells[zeile,Spalte].Value;
if ZwischenStr = Begriff then begin
NachBegriffSuchenExcel := True;
end
else begin
NachBegriffSuchenExcel := False;
end;
end;
function TUsExcel.TabellenGroesseExcel:longint;
begin
// Excel1.ActiveWorkb.close;
Showmessage(inttostr(Excel1.row.Count));
end;
end.
{
Feldformatierungen
Standard = "General"
Text = "@"
}
ich hoffe das hift dir.
an sonsten gibt es noch von Microsoft texte
suche mal nach: VBAXL9.CHM
auf deiner Platte
mfg