Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel (Import/Export) (https://www.delphipraxis.net/4605-excel-import-export.html)

Marco Haffner 7. Mai 2003 22:56

Ich habe bei mir auf dem Rechner noch eine Unit die es ermöglicht direkt eine Excel-Tabelle zu schreiben ohne das Excel installiert sein muß.
Wenn ich wieder an meinem Rechner sitze kann ich nachsehen woher ich die habe.

dopeline 7. Mai 2003 23:24

vielen dank @ssach! aber ich hab da noch 2 fragen:

1. was heist das lb. (s.u.)?
2. "filename" --> pfad
ich dachte, den pfad gibt man dann im laufenden programm im
savedialog an und nicht schon vorher?! :?:

Delphi-Quellcode:
lb.Items.SaveToFile(SaveDialog.Filename); //filename ist der pfad
irgentwie seh ich da noch nicht so ganz durch... :oops: (Sorry...)

@Marco Haffner das wäre sehr nett!

Grüße, dopeline

Marco Haffner 7. Mai 2003 23:40

So bin wieder an meinem Rechner, und hab's auch gefunden, sogar mit Demo.
Benötigt wird dann aber nur die xls.pas die sich im Suchpfad befinden muß.
Leider weiß ich jetzt nicht mehr wo die geladen hatte, deswegen als Attachment.

ssach 8. Mai 2003 15:40

hy,

lb ist meine abkuerzug fuer listbox, du musst solch ine auf dein form setzhen, und stellst die eigenschaft visible einfach auf false!
den pfad gibrt man im savedialog, aber man muss ihn danach der listbox zuweisen!

am abnd werde ich dir die prozedur zum laden von csv dateien in eine listbox

bis dann

cu

dopeline 8. Mai 2003 17:01

OK, also das exportieren klappt jetzt einigermaßen!
aber wenn ich die datei in excel öffne sehe ich, dass die tabelle aus meinem programm gleich 4x exportiert wurde (untereinandergestzt). wie kann ich das verhindern?

noch 2 sachen:

1. wie kann ich die spaltenbreite in der excel-datei festlegen?
2. er soll, beim export in der excel-datei eine überschrift ("Adressen-Export...") erzeugen (mit vordefinierter schriftgröße usw)

dopeline 8. Mai 2003 17:12

ich glaube das problem mit den 4 untereinanderhängenden tabellen erklärt sich so:

ich exportiere das erste mal meine tabelle und erzeuge eine exceldatei
(dann ist in der datei auch nur eine tabelle vorhanden. soweit gut)

ich exportiere ein zweites mal und "überschreibe" die schon vorhandene datei.
(beim öffnen fine ich die tabelle vom ersten export ganz oben und darunter die zuletzt exportierte. und so setzt sich das immer weiter fort,bei jedem export wird eine tabelle unten rangehängt)

man muss ihm irgentwie sagen, dass er die datei erst "löschen" soll.

geht das?

Marco Haffner 8. Mai 2003 18:23

Zitat:

Zitat von dopeline
1. wie kann ich die spaltenbreite in der excel-datei festlegen?
2. er soll, beim export in der excel-datei eine überschrift ("Adressen-Export...") erzeugen (mit vordefinierter schriftgröße usw)
...
...
...
man muss ihm irgentwie sagen, dass er die datei erst "löschen" soll.

Zu 1: mit Xls_SetColWidth(FileHandle, 0, 17);
Wobei die 0 die Spalte angibt und 17 die Breite.
Zu 2: Da müßte dann die Unit noch für angepasst werden.
Da ich dies bis jetzt noch nicht brauchte habe ich es mir auch nicht genauer angesehen. Kannst ja mal auf www.wotsit.org nach weiteren Infos suchen.

Indem Du selbst überprüfst ob die Datei vorhanden ist und dann löscht.

Tester 15. Sep 2003 14:36

Zitat:

Zitat von Specialwork
Hallo Dopeline,

Ich habe mal ein Beispiel erstellt, mit dem man ein Excelsheet erstellen und mit Daten versorgen kann.

Excelsheets füllen

Gruß, Tom

Hi!

Problem bei diesem Program wäre aber das man Excel nochmal selber im Task-Manager beenden muß.

Umgehen kann man dieses, wenn man beim Beenden folgendes schreibt
Code:
 
   var SaveChanges : OleVariant;
   begin
     SaveChanges := true;
     //verhindert die Abfrage fürs Speichern
     ExcelWorkbook1.Close(SaveChanges);
     ExcelApplication1.Quit;
     ExcelApplication1.Disconnect;
     ExcelWorkbook1.Disconnect;
     ExcelWorksheet1.Disconnect;
   end;
MfG

Tester

Shivan 15. Sep 2003 16:00

Re: Excel (Import/Export)
 
Tuningsmöglichkeiten gibts übrigens noch, wenn man bei der Range nicht nur eine Zelle exportiert sondern eine ganze Zeile oder sogar noch mehr.

Das ganze geht über ein Variant Array
Delphi-Quellcode:
var arrData: Variant;

arrData := VarArrayCreate([1, yourStringGrid.RowCount, 1, yourStringGrid.ColCount], varVariant);

//Range ermitteln
Range := wb.WorkSheets[1].Range[wb.WorkSheets[1].Cells[1, 1],wb.WorkSheets[1].Cells[yourStringGrid.RowCount, yourStringGrid.ColCount]];

Range.Value := arrData;

The-Friendly-Sniper 16. Sep 2003 10:30

Re: Excel (Import/Export)
 
:bounce2: Hi, ich hätte zum Thema mal 'ne Frage und zwar wie kann ich vorhandene XLS Datei auslesen, so das ich diese in CSV speichern kann.
Die XLS enhalten keine Bilder, sondern bestehen nur aus spalten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr.
Seite 2 von 3     12 3      

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