• Login
sketchucation logo sketchucation
  • Login
🔌 Quick Selection | Try Didier Bur's reworked classic extension that supercharges selections in SketchUp Download

Open Excel code to a Plug-in.

Scheduled Pinned Locked Moved Developers' Forum
3 Posts 2 Posters 439 Views 2 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    davesexcel
    last edited by 25 Oct 2014, 15:21

    ` #UI.menu("PlugIns").add_item("Open Excel") { Open_Excel }

    #def Open_Excel
    require 'win32ole'
    excel = WIN32OLE.new('Excel.Application')
    excel.Visible = true
    number_of_sheets = excel.SheetsInNewWorkbook
    excel.SheetsInNewWorkbook = 1
    workbook = excel.Workbooks.Add
    excel.SheetsInNewWorkbook = number_of_sheets
    workbook.SaveAs('C:\TestFolder\YourWorkbook2.xlsx')

    workbook = excel.Workbooks.Open('C:\Users\Dave\AppData\Roaming\SketchUp\SketchUp 2014\SketchUp\Plugins\MyWorkbook.xlsx')
    #end`

    Hello,still new to Ruby
    This works when I run it through the ruby console, but I can't figure out the way to make it a Plug-in. I have added "#" to the lines that should make it a Plug-in.

    When I run the code throught the console, it creates a new workbook, saves it, then opens a different workbook. When I remove the "#" save the code and open Sketch-up.
    "Open excel" shows in the plug-in menu, when I click it though nothing happens.

    Thanks in advanced.

    1 Reply Last reply Reply Quote 0
    • T Offline
      TIG Moderator
      last edited by 25 Oct 2014, 15:45

      This approach will work.
      The command [as used in the Plugins menu] is Open_Excel.new()

      require('sketchup.rb')
      
      module Open_Excel
      
      UI.menu("Plugins").add_item("Open Excel") { self.new() } unless file_loaded?(__FILE__)
      file_loaded(__FILE__)
      
      def self.new()
      	require('win32ole')
      	excel = WIN32OLE.new('Excel.Application')
      	excel.Visible = true
      	number_of_sheets = excel.SheetsInNewWorkbook
      	excel.SheetsInNewWorkbook = 1
      	workbook = excel.Workbooks.Add
      	excel.SheetsInNewWorkbook = number_of_sheets
      	workbook.SaveAs('C;\TestFolder\Test.xls')
      	### Do your stuff...
      	#workbook = excel.Workbooks.Open('C;\Users\Dave\AppData\Roaming\SketchUp\SketchUp 2014\SketchUp\Plugins\MyWorkbook.xls')
      	###
      	### Tidy exit...
      	workbook.Close()
      	excel.Quit()
      	WIN32OLE.ole_free(excel)
      	excel.ole_free
          workbook=nil
          excel=nil
          GC.start
      end
      
      end
      
      

      TIG

      1 Reply Last reply Reply Quote 0
      • D Offline
        davesexcel
        last edited by 25 Oct 2014, 16:08

        Thank You Very much.

        1 Reply Last reply Reply Quote 0
        • 1 / 1
        1 / 1
        • First post
          3/3
          Last post
        Buy SketchPlus
        Buy SUbD
        Buy WrapR
        Buy eBook
        Buy Modelur
        Buy Vertex Tools
        Buy SketchCuisine
        Buy FormFonts

        Advertisement