Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Excel Daten aus sheet einlesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Excel Daten aus sheet einlesen (3187 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 05. Jun. 2015 14:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich stehe vor dem Problem aus reiner Unwissenheit, einmal wo kann ich Hilfe finden zum anderen ist es überhaupt möglich, die kompletten Daten aus einem Excelsheet einzulesen oder muss man da Zelle für Zelle vorgehem
Code:
(defun read_excel_range (FilePath ShtNum / ExcelApp ExcData Sht UsdRange Wbk)
(vl-load-com)
(setq ExcelApp (vlax-get-or-create-object "Excel.Application"))
(vla-put-visible ExcelApp :vlax-true)
(vlax-put-property ExcelApp 'DisplayAlerts :vlax-true)
(setq Wbk (vl-catch-all-apply
    'vla-open
    (list (vlax-get-property ExcelApp "WorkBooks") FilePath)
    )
      )
(setq Sht (vl-catch-all-apply
    'vlax-get-property
    (list (vlax-get-property Wbk "Sheets")
    "Item"
    ShtNum
    )
    )
      )
(vlax-invoke-method Sht "Activate")
(setq UsdRange (vlax-get-property (vlax-get-property Sht 'Cells) "Range" Address)
      UsdRange (vlax-get-property UsdRange "CurrentRegion" )
      ExcData  (vlax-safearray->list (vlax-variant-value (vlax-get-property UsdRange 'Value2)))
      )

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 05. Jun. 2015 14:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Du kannst auch den Range verarbeiten, Beispielcode sollte es auch geben - habe aber keine Zeit dir einen Link rauszusuchen:

editiert: << siehe Meldin >>

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 05. Jun. 2015 14:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Hallo,
es ist so wie immer im leben man ließt Zeile für Zeile. 

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 05. Jun. 2015 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
es ist so wie immer im leben man ließt Zeile für Zeile.

Ich warte nur auf eine Schnittstelle, die mir die COM-objekte direkt ins Hirn trichtert

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 05. Jun. 2015 15:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Was aus deinem post nicht richtig hervor ging du kannst natürlich vorher filtern was du benötigst ob einzenle zelle, ausgewählte zellen, spalte(n) usw. kommt darauf an was du benötigt und ob du weißt wo deine daten in der Tabelle stehen. An der suchfunktion in Excel habe ich mich auch mal vor langer Zeit versucht bin aber gescheitert vielleicht schaffst du es ja (oder jemand anders!) Habs noch wiedergefunden was mir damals als hilfe gedient hat.

Code:

(vlax-invoke-method
      xlURange
      'find
      (vlax-get-property
SHEET
"Range"
(vlax-make-variant "A1:A14" 8)
      )
      (vlax-make-variant "a" 8)
      (vlax-make-variant "A2" 8)
      (vlax-make-variant -4163 2)
      (vlax-make-variant "1" 2)
      (vlax-make-variant "1" 2)
      (vlax-make-variant "1" 2)
    )


hello ---string---> What
A1 ---string---> After
-4163 ---int32----> LookIn
1 ---int32----> LookAt
1 ---int32----> SearchOrder
1 ---int32----> SearchDirection

What: The info you are looking for, it can be a character string or any data type you are looking for in excel.

After: The cell after which you want to find, it corresponds to the active cell when find is made by user interface.

LookIn: Where to look, in formulas (-4123), values (-4163) or notes (-4144)

LookAt: Look at whole or part (1,2)

SearchOrder: By rows (1) or by columns (2)

SearchDirection: Next or previous (1,2)

MatchCase: True for upper and lowercase distinction

MatchByte: only for assian office

You can find this info in the VBA help, and you can use object examiner (sorry for the traduction) in VBA to know values.
Hope this helps


------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 05. Jun. 2015 15:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja da sprichst du mir aus der Seele, man stösst immerwieder an das Problem bei vl-object, wo findet man was. Die VBAIDE ist da auch nicht sehr aufschlussreich.
Das wird wohl ein wenig dauern. Wir werden sehen - dann poste ich es auch.

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 05. Jun. 2015 19:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

@Dirk: Du bist doch auch in .Net unterwegs. Bau dir da eine Lispfunktion zum Auslesen der Excel-Dateien und gib das Ergebnis so zurück, dass du damit in Lisp was anfangen kannst. Auf .Net-Seite bist du doch sehr viel näher an der Microsoftwelt, als du mit Lisp jemals sein wirst. ActiveX ist eine Krücke, die zwar funktioniert, aber auch extrem langsam ist und die Dateitypen nicht so recht zum Lisp kompatibel sind.
Ich habe den Eindruck, dass du zwischen Lisp und .Net schwankst. Wenn ich mir aber deine Aufgabenstellungen/Fragen so betrachte, ist die .Net-Welt für dich die passendere. Es wird sicher auch nahezu alles irgendwie in Lisp zu machen sein, mit Einschränkungen was die Performance, die Vernetzung zu anderen AutoCADfremden Daten anbelangt (XML/Excel/Datenbanken) und auch die Benutzerführung betrifft.
Soll heißen: via odbc-Zugriff von .Net aus kannst du alle Tabellenblätter, auch großer Tabellen in wenigen Sekunden auslesen. Ich habe letzte Woche erst einen Auftrag in dieser Richtung erledigt. Tabellen mit 30 Spalten und rund 3.000 Zeilen in mindestens 5 Tabellenblättern einer Datei sind auf diesem Weg in weniger als 3sec ausgelesen und als Assoziationsliste an die weitere Lisp-Verarbeitung zurück gegeben.
Von Lisp aus würde ich behaupten, dass man beim Zugriff via ActiveX einigen Minuten auf ein Ergebnis warten müsste.
Ich möchte dich nicht zu irgendetwas bekehren .. da aber dein Interesse an .Net vorhanden ist, denke ich, ist dieser Hinweis in Ordnung.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 06. Jun. 2015 12:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Also ich habe es mal getestet.
Zitat:
Von Lisp aus würde ich behaupten, dass man beim Zugriff via ActiveX einigen Minuten auf ein Ergebnis warten müsste.

Mein Ergebniss liegt bei 2.4 Sekunden. Daher scheint mir .Net hier nicht schneller.

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 06. Jun. 2015 13:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Meldin, ich wette das das es bei dir 1-2 Minuten dauern würde, wenn du die gleiche Aufgabe versuchen würdest.
(man braucht zwar nur 0.5-2sek. für den Zugriff, aber eine Assoc-Liste in der Größe dauert schon sehr lange und siche nicht in 2.4sek. machbar)


EDIT: Soll bedeuten das der Excel-Zugriff recht schnell ist, nur die weitere Verarbeitung in Listen nicht.
Kommt also darauf an ob dies nötig ist / von Aufgabe zu Aufgabe.
------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 06. Jun. 2015 13:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Hier mein testversuch und es sind doch listen! wie soll denn sonst deine Assoc liste aussehen.
Code:
(defun c:exin (/ Start VariantListen Sheets ExcelSeite zähler)

;;;
;;; Uhr
  (setq Start (getvar "Date"))
;;; Uhr Ende
  (vl-load-com)
  (setq Sheets
(vlax-get-property
  (vlax-get-property
    (vlax-get-object "excel.application")
    "ActiveWorkbook"
  )
  "Sheets"
)
  )
  (setq zähler 0)
  (repeat 5
    (setq ExcelSeite
  (vlax-get-property
    Sheets
    "Item"
    (setq zähler (1+ zähler))
  )
    )
    (setq ExcelUsedRange
  (vlax-variant-value
    (vlax-get-property
      (vlax-get-property ExcelSeite "UsedRange")
      "VALUE"
    )
  )
    )
    (setq VariantListen (vlax-safearray->list ExcelUsedRange))
    (set (read (strcat "Tabelle" (itoa zähler)))
(mapcar '(lambda (l)
    (mapcar '(lambda (p) (vlax-variant-value p)) l)
  )
VariantListen
)
    )
    (prin1)
  )


;;; Uhr
  (princ "\n")
  (princ (list "Benötigte Zeit"
      (rtos (* 86400 (- (getvar "Date") Start)) 2 6)
      "sek."
)
  )
  (prin1)
  (terpri)
  (princ (length Tabelle1))
  (terpri)
  (princ (length Tabelle2))
  (terpri)
  (princ (length Tabelle3))
  (terpri)
  (princ (length Tabelle4))
  (terpri)
  (princ (length Tabelle5))
  (terpri)

)


------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 06. Jun. 2015 14:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Ich werde den Code mal testen wenn ich wieder am Rechner sitze,
aber wenn ich richtig interpretiere hast du das eine Liste mit 1. Tabllennamen und danach die Zellwerte.

Ich habe bei der Sache an eine Liste gedacht wie ich sie immer benötige, nämlich(Tabelle(A 1 Wert)(A 2 Wert)(B 1 Wert)(B 2 Wert) oder ähnlich..

Darauf bezog ich mich mit der Zeitangabe, was Brischke meint kann ich natürlich nicht sagen, da kann ich auch nur raten. DAS war halt meine Interpretation zum Thema und Assoc-Liste.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 06. Jun. 2015 14:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Ja teste es erst einmal und schau dir die listen an denn mit deinem A1 A2 B1 B2 system kannst du genau so darauf zugreifen.

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 06. Jun. 2015 14:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

heute wohl nicht mehr, muß erst schauen warum da ein: ; Fehler: Fehlerhafter Argumenttyp: safearrayp nil
kommt

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 07. Jun. 2015 13:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Moin,

also wie ich ja vorher vermutet habe, hast du keine Column/Row-Info in der Liste, aber
sei es drum - durch den Thread habe ich ein faules Ei in meinem Code entdeckt, THX.

Von meiner Minuten-Aussage darf ich mich nun verabschieden (in meinem Prog ist an dieser Stelle deutlich mehr passiert wie die R/C-Info für die Assoc-Liste zu ergänzen).

Zu deinem Code: Ich habe die XLSx nicht als aktuellen Sheet, gehabt sondern die datei zunächst geöffnet, Schwankungen
innerhalb einer Sitzung sind aber größer wie die Unterschiede zwischen bereits geöffnet / oder auch nicht.
Zudem habe ich die Ausgabe noch um die Spalten-Anzahl ergänzt.

Beim Thema Excel-Zugriffszeit war ich ja schon bei dir, beim Thema Assoc-Liste bin ich es nun endlich auch (je nach dem wie man dazu kommt)


Befehl: Exin0 (dein Code mit geschlossenes Excel/File)

(Benötigte Zeit 0.978993 sek.)
601x30
608x30
601x30
608x30
608x30

Befehl:
Befehl: Exin1 (dein Code mit geschlossenes Excel/File)

(Benötigte Zeit 2.879003 sek.)
3001x30
3001x30
3001x30
3001x30
3001x30
nil

Befehl: Exin2 (dein Code mit geschlossenes Excel/File, ergänzt um R/C-Info)

(Benötigte Zeit 1.448996 sek.)
601x30
608x30
601x30
608x30
608x30
nil

Befehl:
Befehl: Exin3 (dein Code mit geschlossenes Excel/File, ergänzt um R/C-Info)

(Benötigte Zeit 6.579003 sek.) // kompiliert nur 5sec.
3001x30
3001x30
3001x30
3001x30
3001x30
nil

Befehl:
Befehl:

Exin0+1 / (cadr T2) =
(("Wert1" "Wert2" "Wert3")....)

Exin2+3 / (cadr T2) =
((("A"  "3") . "Wert1") (("B" "3") . "Wert2") (("C"  "3") . "Wert3")....)

>> Bei Exin2&3 habe ich jetzt nicht geschaut wie es mit der Performace am besten ist,
es war nur einmal ein Test für die Assoc-Liste wie ich sie mir vorstellte bei Holgers Beschreibung.

Und da wir nun genug im Dunklen herumgestochert haben, warten wir wohl mal ab was Brischke gemeint hatte.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 07. Jun. 2015 15:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

So ich habe es auch mal mit geschlossener xls und mit R C angeben probiert.
Und liege hier immer noch weit unter deinem Ergebiss und mein Rechner hier ist auch nur ein ganz einfacher 4kern mit 2.5mhz leigt warscheinlich auch daran woher du deine datenbeziehst und sie zusammen in eine liste schiebst. Hier mein Ergebniss.
(Benötigte Zeit 3.436996 sek.)
3000
3000
3000
3000
3000

(((("A" "1") . 1.0) (("B" "1") . 1.0) (("C" "1") . 1.0) (("D" "1") . 1.0) (("E" "1") . 1.0) (("F" "1") . 1.0) (("G" "1") . 1.0) (("H" "1") . 1.0) (("I" "1") . 1.0) (("J" "1") . 1.0) (("K" "1") . 1.0) (("L" "1") . 1.0) (("M" "1") . 1.0) (("N" "1") . 1.0) (("O" "1") . 1.0) (("P" "1") . 1.0) (("Q" "1") . 1.0) (("R" "1") . 1.0) (("S" "1") . 1.0) (("T" "1") . 1.0) (("U" "1") . 1.0) (("V" "1") . 1.0) (("W" "1") . 1.0) (("X" "1") . 1.0) (("Y" "1") . 1.0) (("Z" "1") . 1.0) (("AA" "1") . 1.0) (("AB" "1") . 1.0) (("AC" "1") . 1.0) (("AD" "1") . 1.0)) ((("A" "2") . 1.0) (("B" "2") . 1.0)

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 07. Jun. 2015 16:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Ich denke das es da entweder am Rechner liegt oder wie man den Part ("A" "3") ermittelt, bei letzterem habe ich nicht versucht zu optimieren, sondern die erste Möglichkeit genommen die mir einfiel.

Das holen der Daten ist es aber nicht, ohne die R/C-Info war es bei mir 2.9sec zu deinen 2.4, das passt doch ganz gut überein!

-

R/C-Info: Ich sitze nicht am Rechner, aber was ich gemacht habe kann ich ja beschreiben:
Nach dem Sheet und holen des Range habe ich Row&Column vom Range abgefragt(denn der Range fängt ja nicht zwingend bei A1 an), im MapcarKonstrukt wird pro Zeile Row um 1 erhöht, Column pro Eintrag der Spalte, springt man eine Zeile weiter wird der aktuelle ColumnWert wieder auf den Vorgabewert gesetzt.
Eine kleine Funktion setzt dabei natürlich noch die Spalten-Zahl in Buchstaben um.
Du hast sicher die Daten direkt vom VlaObjekt abgefragt / an der Stelle bei der auch Value abgerufen wird? Das würde wohl den Zeitunterschied erklären.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 08. Jun. 2015 08:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Nein ich habe es bis aufs Kleinste genau so gemacht wie die du 
ABER was ich nicht verstehe ist wozu benötigt man die zellenposition weil ohne den ganzen schnickschnack ist der Änfängliche Code doch viel schneller und man kann doch den Wert einer Zelle so Abfragen.
Code:
(setq Zeile (nth 199 Tabelle1)) (setq Spalte (nth 5 Zeile ))


Unter Berücksichtigung das der URange nicht mit A1 anfängt.

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 08. Jun. 2015 08:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Also hier in dem Thread ging es mir zunächst nur darum zu interpretieren was Brischke mit Assoc-Liste meinen könnte.
Ich selbst habe es schon benötigt gehabt, weil:

Wenn die Daten nicht direkt verwertet (und verworfen) werden, die R/C-Info aber von Interesse ist,
so muß man mindestens die Start-Row&Column-Werte speichern, dies würde ich heute dann so in der Liste speichern:

((3 4)("wert1" "Wert2" usw)(..))

Aber man kann ja auch mal was anderes wie einen zusammenhängenden Range auslesen (daher kenne ich, für mich, die Anforderung nach der R/C-Info),
dies ist der Fall in dem man markierte Bereiche ausliest und davon kann es mehrere, nicht zusammenhängende geben.

Also ich fasse noch mal zusammen:

Wie sind uns nach wie vor einig das Excel auslesen kein Problem ist (zeitlich und technisch),
was Zeit frißt/fressen kann, sind große Listen zu kreieren/manipulieren,
Beispiel: Ein völlig überflüssige (setq irgendwas p) im Mapcar der Spalten bremst schon deutlich aus.

Assoc-Liste im Thread: Weil es als Beispiel genannt war, daher sind wir darauf eingegangen.


------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Jun. 2015 09:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich


ExcelSpaltenzuordnung.png

 
Hallo,

@meldin: das ist wirklich eine sehr schnelle Art, die Daten aus Excel zu lesen. Mit dem Abfragen des UsedRange hatte ich in der Vergangenheit so meine Probleme, da Excel mitunter auch den Bereich als genutzt kennzeichnet, in denen nur irgendwelche Zell-Formatierungen vorgenommen wurden und keine Werte enthalten sein müssen. Da kann es also sehr leicht dass man extrem viele leere Datensätze zurück bekommt, die die Weiterverarbeitung erschweren. Daher hatte ich seinerzeit eine Routine geschrieben, die die Zellwerte einzeln ausliest und in Listen packt und das Auslesen beendet, sobald mehr als 2 Leerspalten oder Leerzeilen gefunden wurden. Der Einzel-Zugriff auf jede auszulesende Zelle war dann natürlich extrem langsam.

Der Screenshot anbei zeigt die Arbeitsweise des Tools. Es wird die Excel-Datei angezeigt und man kann direkt die Attribute den Spalten zuordnen. Die Rückgabe umfasst dann lediglich die zugeordneten Spalten, so dass die weitere Verarbeitung in Lisp einfach und klar ist.

Das Ergebnis mit der Lisp-Routine:
(Benötigte Zeit 1.679009 sek.)
3201
4321
3649
4865
3345

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 08. Jun. 2015 11:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Interessant was hier für Kommentare kommen - meine Frage zum Lesevorgang wäre: ist es zwingend notwendig die excelTabelle vorher in Excel zu öffnen oder kann man das vermeiden bzw. was passiert wenn gar kein Excel installiert ist - geht das mittel COM-objekt dann noch ?
Warum nicht in .NET, mir schien es einfacher das erstmal in LISP durchzuführen ??? Dem war dann doch nicht so....

Code:
(defun c:test()

(defun read_excel_range (FilePath ShtNum / ExcelApp ExcData Sht ExcelUsedRange Wbk VariantListen)
  (vl-load-com)
  (setq ExcelApp (vlax-get-or-create-object "Excel.Application"))

  (vla-put-visible ExcelApp :vlax-true)
  (vlax-put-property ExcelApp 'DisplayAlerts :vlax-true)
  (setq Wbk (vl-catch-all-apply
      'vla-open
      (list (vlax-get-property ExcelApp "WorkBooks") FilePath)
      )
)
   (setq Sht
(vlax-get-property
   (vlax-get-property
     (vlax-get-object "excel.application")
     "ActiveWorkbook"
     )
   "Sheets"
   )
)
  (setq ExcData
(vlax-get-property
   Sht
   "Item"
   1
   )
)
  (setq ExcelUsedRange
(vlax-variant-value
   (vlax-get-property
     (vlax-get-property ExcData "UsedRange")
     "VALUE"
     )
   )
)
  (setq VariantListen (vlax-safearray->list ExcelUsedRange))
 
;;;  (vlax-invoke-method Sht "Activate")
;;;  (setq UsdRange (vlax-get-property (vlax-get-property Sht 'Cells) "Range" Address)
;;; UsdRange (vlax-get-property UsdRange "CurrentRegion" )
;;; ExcData  (vlax-safearray->list (vlax-variant-value (vlax-get-property UsdRange 'Value2)))
;;; )
  (setq Tabelle
(mapcar '(lambda (l)
     (mapcar '(lambda (p) (vlax-variant-value p)) l)
     )
  VariantListen
  )
)
 
 
  (foreach n Tabelle
    (princ (strcat "\n" (vl-princ-to-string n)))
    )
  )

  ; ***MAIN***
  (setq fname (getfiled "Select Excel File:" "H:/Dropbox/Public/" "XLSX;XLS" 4))
  (read_excel_range fname "Sheet1")
 
  )



------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

[Diese Nachricht wurde von cadplayer am 08. Jun. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 08. Jun. 2015 11:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Wie willst du denn sehen was im Haus ist (Das Haus der Dateien hat ja keine Fenster, nur eine Tür) ?

Natürlich muß eine Datei offen sein oder geöffnet werden, aber man braucht Excel und die Datei nicht am Monitor anzeigen lassen.

(setq EXCEL            (vlax-get-or-create-object "Excel.Application"))

Dann in den WorkBooks schauen ob deine Exceldatei bereits offen ist, wenn nicht öffnen:
(vlax-invoke-method (vlax-get-property EXCEL "WORKBOOKS") "OPEN" FILENAME)

Dabei solltest du dir merken das du sie geöffnet hast, so kannst du sie nach dem Zugriff dann auch wieder schließen.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Jun. 2015 12:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
Interessant was hier für Kommentare kommen - meine Frage zum Lesevorgang wäre: ist es zwingend notwendig die excelTabelle vorher in Excel zu öffnen oder kann man das vermeiden bzw. was passiert wenn gar kein Excel installiert ist - geht das mittel COM-objekt dann noch?

... mit meiner .Net-Variante geht's, egal ob die Datei geöffnet oder geschlossen ist, egal ob Excel installiert ist oder nicht - man ist von der Anwendersituationen unabhängig.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 08. Jun. 2015 12:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Jep, dumm gelaufen, dann setz ich mich doch eher an die NET-version.
Um Versionsunabhängig zu sein, würde doch eine console.exe reichen, die mir einen Textstring der Exceltabelle zurückgibt oder was meinst du?

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 08. Jun. 2015 12:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Die frage ist was es am ende werden soll und warum sollte jemand mit dem Code Excel nutzen der gar kein Excel hat.

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Jun. 2015 12:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

... keine Ahnung, dass musst du wissen.

Ja nach dem, wie du dein Projekt aufbaust, kannst du es als DLL kompilieren für die Einbindung in AutoCAD mit integrierter Lisp-Funktion oder du machst eine exe, die irgendwohin eine lsp-File mit dem Tabelleninhalt schreibt.
Ich habe bei mir beide Varianten integriert, EXE-Lösung aber nur, weil mein Kunde es so wollte.
Wenn ich es ausschließlich AutoCAD nutze, dann würde ich das auch in einer AutoCAD-DLL integrieren.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Jun. 2015 12:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Meldin:
Die frage ist was es am ende werden soll und warum sollte jemand mit dem Code Excel nutzen der gar kein Excel hat.

Möglichkeiten, warum Excel nicht da ist, oder die Datei nicht geöffnet ist, gibt es viele. Sponat vollen mir 2 ein:

(1) Weil dieser jemand z.Bsp. mit OpenOffice arbeitet, aber von anderen Excel-Dateien zugesandt bekommt.
(2) Weil AutoCAD auf einem Server installiert ist, und selbständig bestimmte Aktionen ausführt, wenn irgendwo eine neue Excel-Tabelle auftaucht ..

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 08. Jun. 2015 12:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ja mir geht es lediglich drum ein xlsx zu lesen ohne Excel
öffnen zu müssen sonst könnte ich lediglich Excel mit dem
entspr. File öffnen. Ich hätte mir gern vorgestellt es gäb ein read funktion wie
bei einfachen ascii (csv txt) die einfach alle Zeilen abrattert. Bevor jtzt die Frage
kommt warum tabelle nicht als csv speichern. in der xlsx liegt eine Datasource
auf eine website, die ich damit zwrstören würde

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Jun. 2015 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

... vielleicht ist es besser, du erstellst erst einmal ein Konzept (Wo siegen welche Daten und in welchem Kontext muss damit was gemacht werden)
Die Daten einer Datenbank, egal wo die liegt, über den Umweg Excel zu ermitteln, funktioniert zwar, aber ich stelle mir (bzw DIr) die Frage, warum greifst du nicht direkt auf die Datenbank zu .. Excel hat ja scheinbar Zugriff, also kann's nicht daran liegen, dass irgendwelche DB-Treiber fehlen oder die Zugriffsrecht ungenügend sind.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 08. Jun. 2015 13:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

naja ich weiss nur nicht ob ich mittels odbc-treiber auf eine website zugreifen kann. es ist ansich eine simple sache, da die xlsx alle Mitglieder einträge der website speichert. der zugriff über lisp sollte ermöglichen diese Daten einzulesen. Da das nur online passieren kann, ist es wiederum umständlich

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Jun. 2015 13:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

... wie greifst du von Excel auf die Online-DB zu? Da brauchst du für den Tabellen-Connect ebenfalls einen DB-Treiber. Mit demselben kannst du von sonstwo auf die OnlineDB zugreifen.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 08. Jun. 2015 13:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

so hier! 
https://www.youtube.com/watch?v=HFZhvrAib2w

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

[Diese Nachricht wurde von cadplayer am 08. Jun. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Moderator
CAD on demand GmbH




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 08. Jun. 2015 14:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

nunja, das ist natürlich etwas anderes. Das ist auch keine Datenverbindung, wie ich die im klassischen Sinne interpretieren würde. Dieses Excel-Feature nimmt einfach nur den HTML-Stream und wertet die darin erkannten Bereiche aus. Das hat nichts mit einer Daten(bank)-Abfrage zu tun.
Mit .Net kann man das ebenso tun, nur nicht so komfortabel wie dies in Excel möglich ist - der Umweg über Excel wäre auch in diesem Fall nicht notwendig.


Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 08. Jun. 2015 14:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Da hams wir wieder "Datenbanken"!
Damit ist eigentlich an der Stelle alles gesagt, was ich wissen wollte. Vielen Dank Euch allen insbesondere Wolfgang für seine Ausarbeitung im Quelltext. Das hat mir wirklich super weitergeholfen.

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meldin
Mitglied



Sehen Sie sich das Profil von Meldin an!   Senden Sie eine Private Message an Meldin  Schreiben Sie einen Gästebucheintrag für Meldin

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 09. Jun. 2015 09:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Zudem was Holger erwähnt hat möchte ich noch eine Idee anhängen die mir gestern eingefallen ist.
Zitat:
Mit dem Abfragen des UsedRange hatte ich in der Vergangenheit so meine Probleme, da Excel mitunter auch den Bereich als genutzt kennzeichnet, in denen nur irgendwelche Zell-Formatierungen vorgenommen wurden und keine Werte enthalten sein müssen.

Für den Fall das es vorkommenkann das man massig leere Datensätze hat könnte man über
Code:
(setq UsedUsedRange (vlax-invoke-method (vlax-get-property ExcelSeite "UsedRange") "SpecialCells" 2))

alle belegten Zellen abfragen und aus der Abfrage der Adressen die dann z.B sotetwas zurückgeben könnten 
"Z8S4;Z8S6;Z9S5;Z11S5:Z11S6;Z13S7"
mit min max den wirklichen UsedRange ermitteln. Achtung mit ";" u. ":"
Und andere unnötigt Daten könnte man vorher mit Replce entfernen doppelte Leerzeichen usw..
Habe es jetzt nicht alles bis aufs kleiste durchgetestet daher nur eine Idee.



------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz