Advertisement
Guest User

Untitled

a guest
Sep 11th, 2017
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. (defun EXD (/ ExcelApp ExcData FilePath Sht ShtNum UsdRange Wbk)
  2.  
  3.  
  4. (setq FilePath (getfiled "Select Excel file to read :"
  5. (getvar "dwgprefix")
  6. "xlsx"
  7. 16
  8. )
  9. )
  10.  
  11. (setq ShtNum 1)
  12.  
  13. (setq ExcelApp (vlax-get-or-create-object "Excel.Application"))
  14. (vla-put-visible ExcelApp :vlax-true)
  15. (setq Wbk (vl-catch-all-apply
  16. 'vla-open
  17. (list (vlax-get-property ExcelApp "WorkBooks") FilePath)
  18. )
  19. )
  20. (setq Sht (vl-catch-all-apply
  21. 'vlax-get-property
  22. (list (vlax-get-property Wbk "Sheets")
  23. "Item"
  24. ShtNum
  25. )
  26. )
  27. )
  28. (vlax-invoke-method Sht "Activate")
  29. (setq UsdRange (vlax-get-property Sht 'UsedRange)
  30. ExcData (vlax-safearray->list
  31. (vlax-variant-value
  32. (vlax-get-property UsdRange 'Value)
  33. )
  34. )
  35. ) ;or Value2
  36. (setq
  37. ExcData (mapcar
  38. (function (lambda (x) (mapcar 'vlax-variant-value x)))
  39. ExcData
  40. )
  41. )
  42.  
  43. (vl-catch-all-apply
  44. 'vlax-invoke-method
  45. (list Wbk "Close")
  46. )
  47.  
  48. (vl-catch-all-apply
  49. 'vlax-invoke-method
  50. (list ExcelApp "Quit")
  51. )
  52.  
  53. (mapcar
  54. (function
  55. (lambda (x)
  56. (vl-catch-all-apply
  57. (function (lambda ()
  58. (progn
  59. (if (not (vlax-object-released-p x))
  60. (progn
  61. (vlax-release-object x)
  62. (setq x nil)
  63. )
  64. )
  65. )
  66. )
  67. )
  68. )
  69. )
  70. )
  71.  
  72. (list UsdRange Sht Wbk ExcelApp)
  73. )
  74.  
  75. (gc)
  76. (gc)
  77. ExcData
  78. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement