Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich suche ein VI, oder einen Tipp, wie ich bei einem vorhandenen Excel-Sheet das Ende der Daten finde und dann den Ort der nächsten freien Zeile weitergeben kann.
Komme selber auf keinen grünen Zweig und habe in der Suchfunktion leider nichts gefunden.
ob man das direkt rausfinden kann? Ich hab da meine Zweifel...du könntest mal die verschiedenen Nodes (z.B. des Worksheets) nach entsprechenden Methoden bzw. Eigenschaften durchsuchen...
Alternativ könntest du die Datei mit "ReadSpreadsheet" einlesen und in ein 2D-String-Array schieben. Das kannst du dann mit LV-eigenen Möglichkeiten untersuchen...z.B. indem du die ArrayLength überprüfst..."+1" und du hast deine nächste freie Zelle! Aber denk dran, in Excel werden die Zellen ab 1 gezählt, in LV wird ab 0 gezählt!
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
So müßte es gehen:
Option "Zeilen einlesen" (rechte Maustaste) aktivieren. Wenn es keine Zeilen mehr gibt, kommt eine Fehlermeldung, die die Schleife beendet. Bei einer Datei mit 3 Zeilen kommt als Ergebnis 2 heraus, Du mußt also evtl. das Ergebnis noch inkrementieren.
@ Achim:
Ich hab nur das Problem bei ReadSpreadSheet, dass ich LV nicht sagen kann, welches Sheet genommen werden soll (die xls-Datei besteht aus mehreren Worksheets, z.B. Januar Februar etc.).
Ich bin aber dran eine Lösung über Property Nodes zu finden...... (hoffentlich)
@ Lucki:
Das funktioniert komischerweise bei mir nicht. Die jetzige Datei endet nach drei Zeilen und die Schleife geht viel weiter (hab sie bei hundert ca. abgebrochen). Kann das vielleicht auch daran liegen, dass ich eine xls-Datei habe, die mit den Zusatzmodulen von LV ertsellt wurde?
Ich hab nämlich das Gefühl, dass LV einen Unterschied zwischen einer xls-Datei durch "WriteSpreadSheet" und einer xls-Datei über "ExcelEasyTable" macht.....
Schöne Grüße
Andreas
20.04.2007, 06:57 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2007 07:00 von Lucki.)
' schrieb:@ Lucki:
Das funktioniert komischerweise bei mir nicht. Die jetzige Datei endet nach drei Zeilen und die Schleife geht viel weiter (hab sie bei hundert ca. abgebrochen). Kann das vielleicht auch daran liegen, dass ich eine xls-Datei habe, die mit den Zusatzmodulen von LV ertsellt wurde?
Keine Ahnung, aber eine Fehlerfindung sollte doch kein Problem sein:
1.) Die xls - Datei mit einem normalen Texteditor öffnen. Handelt es sich wirklich um einen dreizeiligen Text? Auch Leerzeilen gelten als Zeile. Ist es vielleicht ein Text mit 3 Zeilen und 500 Returns?
2.) Die am Ausgang des VI "Aus Textdatei lesen" anliegenden Zeilen auslesen und an einen Index-Ausgang der Schleife legen. Dort Array-Anzeige anschließen. Was für Zeilentexte werden da bei 100 Durchläufen ausgelesen, wenn die Datei doch nur 3 Zeilen hat?
Mein Verdacht ist allerdings, daß Du, obwohl ich ausdrücklich darauf hingewiesen habe, die Option "Zeilen lesen" nicht aktiviert hast. Dabei ändert sich das Bild des VIs. Es muß genau so aussehen wie in meinem Bild, d.h. unter der Brille im VI müssen Zeilen zu sehen sein!
20.04.2007, 08:27 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2007 08:29 von AVogt.)
Hatte ich eigentlich beachtet, dass da "Zeilen lesen" stand.
Habs nochmal gemacht und die Zeilen unter den dreien die beschrieben sind einfach gelöscht (hab zwar keine Daten drin gehabt, aber man weiß ja nie :-) ).
Bekomme jetzt durch das VI 44 raus und der Texteditor zeigt mir 14 Zeilen an.
Häng beide Sachen mal an, vielleicht hab ich ja was übersehen. Bin aber dran...
Schöne Grüße
Andreas
Anzeige
20.04.2007, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2007 09:37 von Lucki.)
Ich kenne mich mit Excel nicht gut aus, kann Dir da nicht weiterhelfen.
Bin davon ausgegangen, daß es sich bei Deiner Datei um eine Textdatei handelt, was gar nicht der Fall ist, diese Datei ist binär.
Es stimmt auch nicht, daß es sich um eine einfache Tabelle mit drei Zeilen handelt. Die Excel-Datei besteht vielmehr aus drei Arbeitsblättern ("Test": Inhalt mit drei Zeilen, "Mai": leer, "Juni": leer). Die Arbeitsblätter werden ja alle mit abgespeichert, und auch wenn sie leer sind, hinterlassen sie entsprechende Einträge in der Datei. Es wird alles funktionieren, wenn Du das Arbeitsblatt "Test" als Text abspeicherst, was ja von Excel aus möglich ist.
Mir ist auch nicht bekannt, daß man eine binäre Excel-Datei, bestehend au mehreren Arbeitsblättern und anderem Schnickschnack, einfach so in LabVIEW übernehmen kann. Aber ich lasse mich gern belehren, wenn das tatsächlich funktionieren sollte.
Habe es mittlerweile mit Hilfe von ni.com/zone herausgefunden. Es geht mit ActiveX. Man muss nur vorher das zu wünschende Blatt (Worksheet) aktivieren.
Die Abfrage sieht dann wie im angehängten Bild aus.....