How to Rotate Text in an specific cell inside a table?

How to Rotate Text in an specific cell inside a table?

Anonymous
Not applicable
1,235 Views
2 Replies
Message 1 of 3

How to Rotate Text in an specific cell inside a table?

Anonymous
Not applicable

Hi there,

 

I do have a lisp function to reformat a table. The function takes care of adjusting columns and row sizes as well as doing a little bit of formating of the text inside the cells. What I have not been able to do is to rotate the text contained inside 1 of the specific cells. I will appreciate if somebody can give me an example of how to do it. Here is a partial portion of my lisp function.

 

    (vla-setcolumnwidth tbl 0 5.0)			; sets columns' width
    (vla-setcolumnwidth tbl 1 7.5)
    (vla-setcolumnwidth tbl 2 10.0)
    (vla-setcolumnwidth tbl 3 7.5)
    (vla-setcolumnwidth tbl 4 12.5)
    (vla-setcolumnwidth tbl 5 7.5)
    (vla-setcolumnwidth tbl 6 12.5)
    (vla-setcolumnwidth tbl 7 3)

    (setq TotalRowCount (vla-get-rows tbl))		; sets text's and row's height
    (setq RowNumber 0)
    (while (< RowNumber TotalRowCount)
        (vla-setcelltextheight tbl RowNumber 0 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 1 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 2 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 3 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 4 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 5 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 6 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 7 1.5)	; sets text's height

        (vla-SetCellAlignment tbl RowNumber 0 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 1 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 2 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 3 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 4 acMiddleLeft)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 5 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 6 acMiddleLeft)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 7 acMiddleCenter)	; sets text's alignment

        (vla-setrowheight tbl RowNumber 3.0)		; sets row's height
        (setq RowNumber (+ RowNumber 1))
    );while
0 Likes
Accepted solutions (1)
1,236 Views
2 Replies
Replies (2)
Message 2 of 3

Ranjit_Singh
Advisor
Advisor

Try using the setrotation method

(vla-setrotation vlaobj 0 1 0 desired_angle)

table_cell_rotation.gif

 

0 Likes
Message 3 of 3

Anonymous
Not applicable
Accepted solution

I got the rotation of the specific cell working with the following:

 

          (vla-SetTextRotation tbl RowNumber 7 3)

 

That sets that particular cell (the one on column 7) to 270 degrees. Where 0 = 0 Deg; 1 = 90 Deg; 2 = 180 Deg & 3 = 270 Deg.

This is how my code look like now:

 

 

    (setq TotalRowCount (vla-get-rows tbl))		; sets text's and row's height
    (setq RowNumber 0)
    (while (< RowNumber TotalRowCount)
        (vla-setcelltextheight tbl RowNumber 0 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 1 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 2 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 3 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 4 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 5 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 6 1.5)	; sets text's height
        (vla-setcelltextheight tbl RowNumber 7 1.5)	; sets text's height

        (vla-SetCellAlignment tbl RowNumber 0 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 1 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 2 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 3 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 4 acMiddleLeft)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 5 acMiddleCenter)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 6 acMiddleLeft)	; sets text's alignment
        (vla-SetCellAlignment tbl RowNumber 7 acMiddleCenter)	; sets text's alignment

 	(vla-SetTextRotation tbl RowNumber 7 3)		; Rotates Text to 270

        (vla-setrowheight tbl RowNumber 3.0)		; sets row's height
        (setq RowNumber (+ RowNumber 1))
    );while

 

 

Cheers,

0 Likes