![]() |
Re: Excel-Tabelle in Stringgrid einlesen!
Zitat:
Das hier reicht allemal (zumindest mir) : Zitat:
Zitat:
|
Re: Excel-Tabelle in Stringgrid einlesen!
eigentlich ist da activete des Worksheets ja völlig sinnlos .. Ziel ist ja, das Worksheet in einer Delphi Variant Matrix zu kopieren.
warum geht das nicht so, wie ich möchte ?
Delphi-Quellcode:
RangeMatrix := sheet.Range['A1', 'E5'].Copy(EmptyParam);
Kopieren in die Zwischenablage funktioniert: (würde funktionieren, ist aber nicht sehr schick, die daten dann aus der Zwischenablage zu lesen)
Delphi-Quellcode:
siehe hier:
sheet.Range['A1', 'E5'].Copy(EmptyParam);
![]() vielleicht gibts ja eine einfache Lösung dafür? |
AW: Excel-Tabelle in Stringgrid einlesen!
Hallo zusammen
Ich habe ein Delphi-Programm geschrieben, das aus einer Excel-Datei Vokabeln ausliest und zum Üben verwendet. Ohne den Code von Toms (#6) hätte ich das niemals geschafft, da ich von OLE-Automation keine Ahnung habe. Nun würde ich die Daten lieber in Libre Office Calc übergeben, damit ich sie auf beliebigen PCs auslesen kann, ohne auf das Vorhandensein von MS Office angewiesen zu sein. // Create Excel-OLE Object XLApp := CreateOleObject('Excel.Application'); Gibt es inzwischen eine Methode, diesen Code von Toms für LibreOffice Calc anzupassen? Falls ja, könnten die übrigen Befehle übernommen werden oder sind sie für MS Office abgestimmt? Im Internet habe ich dazu noch nichts gefunden. Bin für jede Hilfe dankbar! MfG Gelmo |
AW: Excel-Tabelle in Stringgrid einlesen!
Das Prinzip ist ähnlich,
aber ich an Deiner Stelle würde CSV,JSON oder XML als Speicherformat nutzen. CSV kann von EXCEL und Calc gelesen und geschrieben werden, bei den beiden anderen Formaten bin ich mir nicht sicher. Gruß K-H |
AW: Excel-Tabelle in Stringgrid einlesen!
Hallo,
wenn es etwas kosten kann -> TMS hat Komponenten für Xls und Xlsx (kostet extra), die lesen und schreiben können. Und die arbeiten auch ohne ein installiertes Excel, also ohne die COM-Schnittstelle. Zum LibreOffice: Also wenn ich nach LibreOffice Automation suche, finde ich schon eine Menge, z.B. ![]() |
AW: Excel-Tabelle in Stringgrid einlesen!
|
AW: Excel-Tabelle in Stringgrid einlesen!
Evtl. wäre das jetzt auch der Zeitpunkt, sich mit Datenbanken zu befassen, um komplett unabhängig zu sein, von irgendwelchen Office-Produkten. Gleichzeitig hat man ein besseres/flexibleres Speichermedium für seine Vokabeln, dass nicht nur aus einer irgendwie gearteten Datei besteht (xls, csv, ...). Und man erhält die Möglichkeit mehr Infos zu speichern, z.B. welche Vokabeln waren schon dran, welche waren falsch, müssen also nochmal präsentiert werden usw.
|
AW: Excel-Tabelle in Stringgrid einlesen!
Ich lese eine Excel CSV in MEHRERE Stringgrids ein (Ein Stringgrid = Ein Tabellenblatt).
Von HolgerX eine .pas: ![]() Kleine Änderungen von mir: ![]() Diese ins Programm einbinden Im Programm wird es dann so aufgerufen (FXLApp ist nur ein beliebiger Name für die OleVariant): Laden (für jedes Tabllenblatt:
Delphi-Quellcode:
Falls du die Spaltenbreite auch anpassen willst nach dem befüllen:
OpenExcel(DATEINAME, FXLApp);
Xls_To_StringGrid(FXLApp, STRINGGRID, TABELLENBLATTNAME);
Delphi-Quellcode:
GridColWidth(STRINGRID,1,0);
Delphi-Quellcode:
Wieder in Excel Speichern:
//Stringgrid Spaltenbreite anpassen
procedure GridColWidth(grd:TStringGrid;min,max:word); var Zeile,Spalte,tmp,len: word; begin with grd do begin // für alle Spalten for Spalte:=0 to (ColCount -1) do begin len:=0; for Zeile:=0 to (RowCount-1) do begin // für alle Zeilen tmp:=Canvas.TextWidth(Cells[Spalte,Zeile]); if tmp>len then len:=tmp // neue max Breite end; // for Zeile if max>0 then if len>max then len:=max; // Maximalbreite if len<min then len:=min; // Minimalbreite ColWidths[Spalte]:=len+GridLineWidth+10 // Spalte verbreitern end // for Spalte end // with end;
Delphi-Quellcode:
SaveExcel(FXLApp)
|
AW: Excel-Tabelle in Stringgrid einlesen!
Sorry, ich komme mit Eurem Editor noch nicht klar. Habe gerade eine Antwort geschrieben, die während der Vorschau verschwunden ist. Also vielen Dank für die Tipps, schaue mich da mal weiter um.
MfG Gelmo |
AW: Excel-Tabelle in Stringgrid einlesen!
Zitat:
Sehr beeindruckend! Vielen Dank. habe ich auch gleich mal probiert. viele Grüße rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr. |
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-2025 by Thomas Breitkreuz