Message 1 of 7
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hallo,
kann mir vielleicht jemand bei meinem Code helfen.
Ich habe aktuell das Problem mit dir Stückliste "Part Only"
Ich möchte aus dieser Stückliste von jedem Bauteil z.B. nur die Bauteilnummer Exportieren.
Anbei der Code den ich jetzt habe.
Dim myXLS_File As String = "C:\Vault\Vorlage.xlsx" ' Den Inventor-Benutzernamen aus den Inventor-Optionen Dim myName As String = ThisApplication.GeneralOptions.UserName ' iProperties auslesen Dim oDoc As Document = ThisApplication.ActiveDocument Dim Projekt As String = oDoc.PropertySets.Item("Design Tracking Properties").Item("Project").Value Dim Dateiname As String = oDoc.PropertySets.Item("Design Tracking Properties").Item("Part Number").Value Dim Beschreibung As String = oDoc.PropertySets.Item("Design Tracking Properties").Item("Description").Value Dim Datum As String = DateTime.Now.ToString("dd.MM.yyyy") ' Abrufen des Konstruktionsstatus aus den iProperties Dim designStatus As Integer = oDoc.PropertySets.Item("Design Tracking Properties").Item("Design Status").Value Dim statusText As String ' Überprüfen des Design Status und Zuweisen des entsprechenden Textes If designStatus = 1 Then statusText = "Freigegeben" ElseIf designStatus = 0 Then statusText = "In Bearbeitung" End If ' Excel-Anwendungsobjekt definieren Dim excelApp As Object = CreateObject("Excel.Application") ' Stellen Sie Excel so ein, dass es sichtbar ausgeführt wird. Ändern Sie es in „false“, wenn Sie es unsichtbar ausführen möchten. excelApp.Visible = True ' Eingabeaufforderungen unterdrücken (wie etwa den Kompatibilitätsprüfer) excelApp.DisplayAlerts = False ' Nach vorhandener Datei suchen Dim excelWorkbook As Object Dim ExcelSheet As Object If Dir(myXLS_File) <> "" Then ' Arbeitsmappe existiert, öffnen Sie sie excelWorkbook = excelApp.Workbooks.Open(myXLS_File) ExcelSheet = excelWorkbook.Worksheets(1) Else ' Arbeitsmappe existiert NICHT, also erstellen Sie eine neue excelWorkbook = excelApp.Workbooks.Add ExcelSheet = excelWorkbook.Worksheets(1) End If ' Daten in Excel einfügen With ExcelSheet .Range("J1").Value = myName .Range("F1").Value = Projekt .Range("F2").Value = Dateiname .Range("F3").Value = Beschreibung .Range("J2").Value = Datum .Range("J3").Value = statusText End With ' Die Stückliste (BOM) abrufen Dim asmDoc As AssemblyDocument = TryCast(oDoc, AssemblyDocument) If asmDoc Is Nothing Then MessageBox.Show("Das aktive Dokument ist keine Baugruppe.") Return End If Dim bom As BOM = asmDoc.ComponentDefinition.BOM bom.StructuredViewFirstLevelOnly = False bom.StructuredViewEnabled = True ' Die "Part Only"-Stücklistenansicht abrufen Dim bomView As BOMView = BOM.BOMViews.Item("Part Only") ' Stücklistenzeilen in Excel schreiben Dim rowIndex As Integer = 7 For Each BOMRow As BOMRow In BOMView.BOMRows ExcelSheet.Cells(rowIndex, 1).Value = BOMRow.ItemNumber ExcelSheet.Cells(rowIndex, 2).Value = BOMRow.ComponentDefinitions(1).Document.DisplayName ExcelSheet.Cells(rowIndex, 3).Value = BOMRow.ItemQuantity rowIndex += 1 Next ' Speichern Sie die Datei Dim Pfad As String = ThisDoc.Path + "\Stückliste-" + ThisDoc.FileName(False) + ".xlsx" excelWorkbook.SaveAs(Pfad) ' Schließen Sie die Arbeitsmappe und die Excel-Anwendung ' Entfernen Sie die Kommentarzeichen, wenn Sie die xls-Datei am Ende schließen möchten excelWorkbook.Close excelApp.Quit excelApp = Nothing
Solved! Go to Solution.