CADsite forum

AutoCAD => Autolisp => Topic gestart door: alex4444 op di 15 10 2013, 11:16:18

Titel: tablestyle excel
Bericht door: alex4444 op di 15 10 2013, 11:16:18
Ik laat acad een projectlijst aanmaken in excel. Nu wil ik een tablestyle toevoegen. Maar dit lijkt me niet te lukken. Ik kom met vl wel tot naam van de tablestyle maar ik kan hem niet zelf toevoegen.

Kan iemand mij helpen.

; OPEN EXCEL
(setq *excelapp% (vlax-get-or-create-object "Excel.Application"))
(vlax-put-property *excelapp% "Visible" :vlax-true)
(if (null (vlax-get-property *excelapp% "ActiveSheet"))
(vlax-invoke-method (vlax-get-property *excelapp% "WorkBooks") "Add")
)

; ALS IK HANDMATIG IN DE GEOPENDE EXCEL ONDER STYLES FORMAT AS TABLE AANKLIK AANZET OP DE CELL a1:j1 WERKT DIT
(vlax-dump-object (vlax-variant-value (vlax-get-property (vlax-get-property (vlax-get-property (vlax-get-property *ExcelApp% "activesheet") 'Range "A1:J1") 'listobject) 'tablestyle)))

; TableStyle: nil
; Property values:
; Application (RO) = #<VLA-OBJECT _Application 00000000295f8708>
; BuiltIn (RO) = -1
; Creator (RO) = 1480803660
; Name (RO) = "TableStyleMedium2"
; NameLocal (RO) = "Table Style Medium 2"
; Parent (RO) = #<VLA-OBJECT TableStyles 00000000296ef538>
; ShowAsAvailablePivotTableStyle = 0
; ShowAsAvailableTableStyle = -1
; TableStyleElements (RO) = #<VLA-OBJECT TableStyleElements 00000000296ef618>
; _Default (RO) = "TableStyleMedium2"
T

Nu wil ik geprogrammeerd de tablestyle als hierboven toevoegen aan een excel document.
Gr,
Alex
Titel: Re: tablestyle excel
Bericht door: roy_043 op di 15 10 2013, 17:04:59
Het ligt voor de hand dat je de parent van het object uit jouw post moet analyseren.
Titel: Re: tablestyle excel
Bericht door: alex4444 op wo 16 10 2013, 07:55:07
(vlax-dump-object (vlax-get-property (vlax-variant-value (vlax-get-property (vlax-get-property (vlax-get-property (vlax-get-property *ExcelApp% "activesheet") 'Range "A1:J1") 'listobject) 'tablestyle)) "parent"))

; TableStyles: nil
; Property values:
;   Application (RO) = #<VLA-OBJECT _Application 0000000029463478>
;   Count (RO) = 144
;   Creator (RO) = 1480803660
;   Parent (RO) = #<VLA-OBJECT _Workbook 0000000029627aa8>
;   _Default (RO) = ...Indexed contents not shown...
;   _NewEnum (RO) = #<IUnknown 000000002d9442f0>
T

En dan? Hoe kan ik deze lijstjes zelf toevoegen aan excel?
Dit lukt allemaal ook alleen als ik het geopende excel handmatig een tablestyle toevoeg. Als ik het meteen doe krijg ik vla-object nil.

Het lijkt me dat ik het vla-object moet creeeren.

Alvast bedankt.
Titel: Re: tablestyle excel
Bericht door: roy_043 op wo 16 10 2013, 09:49:02
Helaas ben ik geen gebruiker van Excel. Ik verwacht dat je meer voorbeelden zult vinden in de VB/VBA/VBS hoek dan in de Lisp hoek. Ik zou i.i.g. op zoek gaan naar het Excel object model.
Overigens: Je kunt beter dit gebruiken
(vlax-dump-object object T) ; Door het extra argument worden ook de 'methods' gedumpt.
Titel: Re: tablestyle excel
Bericht door: alex4444 op wo 16 10 2013, 12:05:01
Citaat van: roy_043 op wo 16 10 2013, 09:49:02
Helaas ben ik geen gebruiker van Excel. Ik verwacht dat je meer voorbeelden zult vinden in de VB/VBA/VBS hoek dan in de Lisp hoek. Ik zou i.i.g. op zoek gaan naar het Excel object model.
Overigens: Je kunt beter dit gebruiken
(vlax-dump-object object T) ; Door het extra argument worden ook de 'methods' gedumpt.

Bedankt voor de tip