Curve Properties to Excel
Windows only

Illustrates RhinoScript code that extracts curve properties into Excel.

Option Explicit

Sub ExtractProperties

  ' Declare variables
  Dim xlApp, xlBook, xlSheet  ' Declare variable to hold the reference.
  Dim strObject
  Dim arrObjects
  Dim intCount
  Dim arrStart, arrEnd

  'Set Default Values
  intCount = 0

  ' Select some objects      
  arrObjects = Rhino.GetObjects("Select objects for extraction",4)
  If Not IsArray(arrObjects) Then Exit Sub

  ' Open Excel object
  Set xlApp = CreateObject("excel.application")
   ' You may have to set Visible property to True
   ' if you want to see the application.
  xlApp.Visible = True
   ' Use xlApp to access Microsoft Excel's
   ' other objects.
   Set xlBook = xlApp.Workbooks.Add
   Set xlSheet = xlBook.Worksheets(1)

  'Place titles on sheet
      xlApp.Cells(1, 1).Value = "Name"
      xlApp.Cells(1, 2).Value = "Length"
      xlApp.Cells(1,3).Value = "StartX"
      xlApp.Cells(1,4).Value = "StartY"
      xlApp.Cells(1,5).Value = "StartZ"
      xlApp.Cells(1,6).Value = "EndX"
      xlApp.Cells(1,7).Value = "EndY"
      xlApp.Cells(1,8).Value = "EndZ"

  'Extract Properties of Curves
  For Each strObject In arrObjects
      'Curves Processed
    If Rhino.IsCurve(strObject) Then
     xlApp.Cells(intCount + 2, 1).Value = Rhino.ObjectName(strObject)
     xlApp.Cells(intCount + 2, 2).Value = Rhino.CurveLength(strObject)
     'Extract StartPoint
     arrStart = Rhino.CurveStartPoint(strObject)
     xlApp.Cells(intCount + 2, 3).Value = arrStart(0)
     xlApp.Cells(intCount + 2, 4).Value = arrStart(1)
     xlApp.Cells(intCount + 2, 5).Value = arrStart(2)
     'Extract EndPoint
     arrEnd = Rhino.CurveEndPoint(strObject)
     xlApp.Cells(intCount + 2, 6).Value = arrEnd(0)
     xlApp.Cells(intCount + 2, 7).Value = arrEnd(1)
     xlApp.Cells(intCount + 2, 8).Value = arrEnd(2)
    End If
    intCount = intCount + 1
  Next

'xlApp.Quit   ' When you finish, use the Quit method to close

 Set xlApp = Nothing   ' the application, then release the reference.

End Sub