AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Excel-Tabelle in Stringgrid einlesen!

Excel-Tabelle in Stringgrid einlesen!

Ein Thema von Chriss · begonnen am 26. Apr 2003 · letzter Beitrag vom 9. Jan 2019
Antwort Antwort
Seite 2 von 2     12
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Excel-Tabelle in Stringgrid einlesen!

  Alt 30. Jan 2007, 20:55
Zitat von stoxx:
hmm .. versteh ich jetzt nich ganz..
Was denn ? Die gelieferten Stichwörter zum suchen, oder was ?

Das hier reicht allemal (zumindest mir) :

Zitat von stoxx:
..65536..
Zitat von stoxx:
..Sind ja nur 4 effektive Zeilen mit Excel ....
Und die werden nicht gezeigt. "Effektiv" ist zudem relativ.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#12

Re: Excel-Tabelle in Stringgrid einlesen!

  Alt 30. Jan 2007, 21:17
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 ?

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)

sheet.Range['A1', 'E5'].Copy(EmptyParam); siehe hier: http://www.dsdt.info/tipps/?id=605

vielleicht gibts ja eine einfache Lösung dafür?
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Gelmo

Registriert seit: 14. Sep 2006
Ort: Niederrhein
10 Beiträge
 
Delphi 10.1 Berlin Starter
 
#13

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 8. Jan 2019, 20:48
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
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.473 Beiträge
 
Delphi 7 Personal
 
#14

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 8. Jan 2019, 23:40
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.364 Beiträge
 
Delphi XE4 Professional
 
#15

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 9. Jan 2019, 08:15
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. https://api.libreoffice.org/examples/examples.html .
Heiko

Geändert von hoika ( 9. Jan 2019 um 08:18 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.470 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#16

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 9. Jan 2019, 09:04
OpenOffice/LibreOffice:
https://www.winsoft.sk/libre.htm

https://api.libreoffice.org/
https://sourceforge.net/projects/uno-pas-bridge/
Markus Kinzler
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.569 Beiträge
 
Delphi 6 Enterprise
 
#17

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 9. Jan 2019, 09:25
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.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
319 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 9. Jan 2019, 09:35
Ich lese eine Excel CSV in MEHRERE Stringgrids ein (Ein Stringgrid = Ein Tabellenblatt).

Von HolgerX eine .pas: https://www.delphipraxis.net/1399704-post14.html
Kleine Änderungen von mir: https://www.delphipraxis.net/1412808-post14.html

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:
  OpenExcel(DATEINAME, FXLApp);
  Xls_To_StringGrid(FXLApp, STRINGGRID, TABELLENBLATTNAME);
Falls du die Spaltenbreite auch anpassen willst nach dem befüllen:
GridColWidth(STRINGRID,1,0);
Delphi-Quellcode:
//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;
Wieder in Excel Speichern:

SaveExcel(FXLApp)
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Gelmo

Registriert seit: 14. Sep 2006
Ort: Niederrhein
10 Beiträge
 
Delphi 10.1 Berlin Starter
 
#19

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 9. Jan 2019, 11:20
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf