| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: externe Exceltabelle in Journalscript ansprechen (2201 mal gelesen)
|
UMo Mitglied Ingenieur
Beiträge: 5 Registriert: 01.10.2007 UG NX 3 auf XP SP2
|
erstellt am: 04. Okt. 2007 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Für Dateiattribute möchte ich gern eine externe Exceltabelle benutzen. Extern ist dabei wichtig. Beispielattribut: thesession.parts.work.SetAttribute("NAME_DT", name_dt(i)) wobei in name_dt(i) "AUSSCHLEUS-STATION" stehen soll. Pro Datei habe ich 36 Attribute zu vergeben. Und eine Station hat schnell mal 50 Dateien. Excel halte da ich für die einfachste Art der Datenbank. Diese Exceltabelle könnte dann zentral oder im Stationsverzeichnis liegen. Mir fehlt schlicht die Syntax, auf die Exceltabelle zuzugreifen und die NX Hilfe bringt mich nicht wirklich weiter. Grüße ------------------ Ulrich Mothes Köln Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SysRAdmin Mitglied SysAdmin
Beiträge: 39 Registriert: 05.12.2006
|
erstellt am: 04. Okt. 2007 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für UMo
Hallo Ulrich, kannst Du die Werte nicht aus einer CSV-Datei lesen? Aus einem Jounal auf Excel zugreifen geht glaub ich nicht. Zumindest bei mir hat er gemeckert als ich den Import Microsoft.Office.Interop.Excel verwenden wollte. Ansonsten hier mal ein kleines Beispiel: Dim xl As Microsoft.Office.Interop.Excel.Application Dim wb As Microsoft.Office.Interop.Excel.Workbook Dim rng As Microsoft.Office.Interop.Excel.Range Dim ws As Microsoft.Office.Interop.Excel.Worksheet xl = New Microsoft.Office.Interop.Excel.Application wb = xl.Workbooks.Open("Exceldatei") wb.Activate() ws = wb.ActiveSheet() rng = ws.range("Zellenname, zb A1") rng.Value=Wert_der_Zelle MfG Chris
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UMo Mitglied Ingenieur
Beiträge: 5 Registriert: 01.10.2007 UG NX 3 auf XP SP2
|
erstellt am: 04. Okt. 2007 11:55 <-- editieren / zitieren --> Unities abgeben:
Danke schon mal, Chris. Mit welcher Biblithek spreche ich denn Microsoft.Office.Interop.Excel... überhaupt an? Imports System Imports NXOpen Imports NXOpen.Assemblies Imports system.windows.forms Imports ??? CSV ist natürlich auch möglich (wenn Excel nicht geht). Da weiß ich aber leider auch nicht, wie ich dran komme.
Gruß Ulrich
------------------ Ulrich Mothes Köln Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SysRAdmin Mitglied SysAdmin
Beiträge: 39 Registriert: 05.12.2006
|
erstellt am: 04. Okt. 2007 12:50 <-- editieren / zitieren --> Unities abgeben: Nur für UMo
Hallo Ulrich, also ich habe folgende verwendet für Office2003: Imports system.Runtime.InteropServices Imports Microsoft.Office.Interop.Excel Dafür muß die .NET-Erweiterung von Office2003 installiert sein. Eine Textdatei kannst Du so einlesen: Dim input As StreamReader Dim text As String dim werte() as string input = New StreamReader(Dateiname, Encoding.Default, True) While input.Peek () > -1 text=input.ReadLine ' hier fügst Du ein, was Du aus der Zeile auslesen willst ' wenn Du also eine CSV Datei hast, kannst Du z.B. mit ' werte = text.split(",") die Kommagetrennten Werte in das Array werte übergeben End While input.Close Das Beispiel liest also zeilenweise die Datei "Dateiname" aus und übergibt die Zeile als String in die Variable text. Dort kannst Du sie verarbeiten wie Du willst. MfG Chris
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UMo Mitglied Ingenieur
Beiträge: 5 Registriert: 01.10.2007 UG NX 3 auf XP SP2
|
erstellt am: 05. Okt. 2007 14:23 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank, Chris, für die schnelle und gute Hilfe. Dafür hätte ich wohl sonst noch lange suchen müssen. So funktioniert's jetzt bei mir mit dem Import aus der Textdatei (.csv): Imports NXOpen Imports System Imports System.IO 'Wichtig für StreamReader Dim attrib_file As String = "Attribute.csv" Dim input As StreamReader Dim text As String Dim attribute(50) as String Dim w As Integer = 0 input = New StreamReader(attrib_file) While input.Peek () > -1 w = w + 1 text = input.ReadLine attribute(w) = text End While input.Close ... attribute() wird später ausgewertet (Mehrfachverwendung). Gruß ------------------ Ulrich Mothes Köln Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarckyMON Mitglied Programmierer
Beiträge: 35 Registriert: 07.07.2008
|
erstellt am: 31. Jul. 2008 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für UMo
Hi Chris, ich habe Office 2003 auf meinem PC und dazu die Interop assemblies. Wenn ich das folgende versuche: Code: Imports Microsoft.Office.Interop.ExcelModule Test Sub Main() End Sub End Module
dann taucht die folgende Fehlermeldung auf: Der Namespace oder Typ "Excel" für den Import "Microsoft.Office.Interop.Excel" wurde nicht gefunden. Ich habe auch die benötigte DLLs in den Ordner "managed" kopiert; das hat leider nicht geholfen. Kennst du eine Lösung dafür??? Mille grazie im Voraus! -Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SysRAdmin Mitglied SysAdmin
Beiträge: 39 Registriert: 05.12.2006
|
erstellt am: 31. Jul. 2008 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für UMo
Hallo Marc, das funktioniert nur, wenn Du das ganze Programm kompilierst zu einer .exe Datei (Lizenz vorrausgesetzt). Nur im Journal kannst Du das Interop.Excel nicht verwenden. Zumindest kenne ich keinen Weg. MfG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Abteilungsleitung Umweltplanung (w/m/d) | Die Autobahn GmbH des Bundes ist seit dem 01.01.2021 als Betreiberin einer der größten und vielfältigsten Infrastruktur für rund 13.000 Autobahnkilometer verantwortlich. Jeder Autobahnkilometer muss am Schreibtisch finanziert, geplant und eingekauft sowie mit Personal versorgt und juristisch begleitet werden. Als Arbeitgeberin bieten wir ein spannendes Umfeld, Raum für persönliche und berufliche Entfaltung sowie eine Vielzahl unterschiedlicher Projekte.... | Anzeige ansehen | Leitung, Teamleitung |
|
MarckyMON Mitglied Programmierer
Beiträge: 35 Registriert: 07.07.2008
|
erstellt am: 31. Jul. 2008 18:20 <-- editieren / zitieren --> Unities abgeben: Nur für UMo
|