115-31: Creating AND Importing Multi-Sheet Excel Workbooks ... - SAS

47 downloads 143 Views 524KB Size Report
Figures 1 and 2 show two different worksheets of the same Excel workbook. ... You can download a copy of the sample data and code used in this paper from the SAS ... An ODS destination controls the type of output that's generated (HTML , RTF, PDF, etc.). ... The files are available to anyone who has network access.
SUGI 31

Hands-on Workshops

! "

!# $%! $ $ % % 0 # ! % # #

"

"

%

0 #

# !

" " +* 2 2

! 2

2

! & ' . /

,--,

"" "

#

# 1 % % 4

/ #

( "0

" ) "

0

# % * 1 2

# 1

3

* #

#

*

#

&$%'() $ '& # 5

" "

" * ,

*

#

"0

0

"

(

+

5

, % &$ , #

#

2 # "

%% #

: %

" !" %

# 68 * % + # 68 # #

6 # 6

(;' 6 6 %6. 0 !"

# % # 2 # # 89 " " +

! % 5

6 % #

#

)

'

2 6 # ,.

2

# " =

%

!

2

2 #

. #

*

7 %

% # #
6

# " @ # "" " # 2 #

)

# "

" # !

2

#

& ' # " % @

# @ %B

%

& '

#

@ "

*

8

.

# 2

! %" 6

! 2

2

2 #

5 ( # # 1 " " % # 0 # !

# %"

2?

!

# #

# ! ! &8 % ! "

ods ods * ods

?

# #

'

,--, 8?

,'( . #!

(

2

"

" 5

"

" "

')$ )$ ( / 0 %1 1 $ @

# # %"

-

5

" #

" " " #

%

, #

" " +A ' 9 5 8 5 @ &86 !

# 3

# !

" 7 #

" 6 !

!

&8 @ 6#

%"

#*

0

6 #

!

% !

% . 2

# 0 #

,--,

; 2

" @ # 2 # #

? @ 2 2 2 / %"

#

listing close; tagsets.ExcelXP style=style-name file=file-name ... ; Your SAS code here; tagsets.ExcelXP close; % # !

+ .

#

6

"

6@

,

$

& '

#

SUGI 31

Hands-on Workshops

# #

@

%

""

# %

+ .

# & '

"

#

"

#

#

"

#

# %

#

/'

@

" *

#

B

ods listing; proc template; list styles; run; quit; #

#

@

#

# *

$ • • •

+ .

# & ' "

#

#

@

*

# # $ 0 0 *

$ #

0

? "

@ #

#

""

!

#

% 2

$

% *

*

#

# " 6

* "

* "0

" *

"

#

" B

"

2 " #

%

# # 65

5

! %"

% " % 6

!

# & ' # ! % # * " " # ! % File ➨ Save As # Microsoft Excel Workbook (*.xls)

$$ &3 ) $4 '( %" 8 A

" %

#

20

#

!

%

2

/

# 3

0

20

2

# % *

$4 5

# !

. * B

$

! File ➨ Open # 65 % 6 " # ;9' # http://Web-server/directory/aedata.xml 2 Open %" # & '

,

@ @

2+ #

*

#

"

"

& &3 '( ')$ )$ "

#

%

# # & ' / 2 "

'

%

&0 %'&

&$

0 #

#

%

;

?

%

*

#

"

",

%

! % # 6

#

!

&8 %B

#

*

;

#

libname mylib 'some-directory'; * Location to store tagsets and styles; ods path mylib.tmplmst(update) sashelp.tmplmst(read); # '( %" " %

%

+ . " #

# # $@9C # %

#

0 3 %

#

# @

# "

8 A % + . " # # # % mylib.tmplmst " sashelp.tmplmst " 6 6 ( @ % mylib.tmplmst < " = 89@ tmplmst.sas7bitm # # 3

8' # #

/ '(

2 # % #

# 2 @

# @ 8

8 A

A %

% #

"

#

?

#

# %

# %

%

# # # 6 " 6 # # # 8 A #

@ % *

# %

/' ( 5

9 A " #

/

# #

SUGI 31

Hands-on Workshops

$4

5

/5 $!3

@ "

# *

$ #

"" " " $ 2 #

2 # 8 0 # ! $ 2 # # # % 2 #

*

@ %

# "

# * #

'( # !

@ !

" /' ( 8 A

&8 2 2

%"

# % # " " 5 # " 2 " #

" *

*

# #

6 % % #

!

&8

%" 6 ! &8

6

B

%include 'ExcelXP.sas'; /

8 A % # * # "" %> $ # 6 # # ! &8

* Specify path to the file, if necessary;

% #

"

%

""

#

+

!

&8 " " # @

6

% #

" "

""

%" % *

%

#

6

# # %

#

# # * .

"

#

"" B

#

filename temp temp; ods tagsets.ExcelXP file=temp options(doc='help'); ods tagsets.ExcelXP close; #

% "

$4

)3

# $ #

2

/

"

2

#

#

'

*

"

#

%

*

#

$1/

2 # ( # #

5

, #

%"

""

!

#

#

"

#

# % # @ #

#

% %

6

; ? "

# #

5

" "

#

/ # # /' ( @ 8 A

'(

# * %

# ; ; ? ; ?

"

% #

+

? #

% %" 6 "

#

" " # @

6

% *

; %

? 6

* . (

0 "# 8' "

#

) &3 '( $' ( @ # !

(

# %"

!

@ # @

% !$ $4 &8 ! "

'( $' % !$ $4

#

)/$

4

# # 89 " 5

/

#

%

+

$ 5

/

2 # (;'

"

" # " " ))) ,--D.

#

'%6#''6 # %

"

" #"

!

2 #

'%6#''6

#

!

2

2B

options center; title; footnote; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; proc print data=sample.aedata noobs label; by protocol; where protocol eq 'ABC 123';

D

# "

SUGI 31

Hands-on Workshops

id patient; id visit / style=rowheader_r_border style(header)=header_r_border; var aecode; var aetext--treat; run; quit; proc print data=sample.aedata noobs label; by protocol; where protocol eq 'XYZ 987'; id patient; id visit / style=rowheader_r_border style(header)=header_r_border; var aecode; var aetext--treat; run; quit; proc tabulate data=sample.aedata; by protocol; where protocol eq 'ABC 123'; var aesev; class aetext; class aesevc / style=rowheader_r_border; classlev aesevc / style=rowheader_r_border; table aetext*aesevc,aesev*pctn / box={label='' style=header_box}; keyword all pctn; keylabel pctn='Percent'; run; quit; proc tabulate data=sample.aedata; by protocol; where protocol eq 'XYZ 987'; var aesev; class aetext; class aesevc / style=rowheader_r_border; classlev aesevc / style=rowheader_r_border; table aetext*aesevc,aesev*pctn / box={label='' style=header_box}; keyword all pctn; keylabel pctn='Percent'; run; quit; ods tagsets.ExcelXP close; % # # "

# 6 # #

; #

!

!

&8 "

6

6

"" %

" # ; ? B " # 6&/F )GH6 # (;' " #" " " 2 # " "

*

# "

#

/' #

#

#

* # 89

"

" #

% ""

" %

%

" #

6

* ?

#

# 89 6 ( ,?6

#

#

* # *

# #

# # 2 #

"

#

# "

""

*

(;' *

9 8@9 " #

!

*

* "

:

B

style=class-name style=[attribute-name1=value1 attribute-name2=value2 ...] style=class-name [attribute-name1=value1 attribute-name2=value2 ...] # class-name *

#

% #

"

attribute-name *

E

#

%

SUGI 31

Hands-on Workshops

# %

% # #

+ .

# %

#

@ # 6 ! # 6# J

""

# 0

*

#

% %" ! %" # (;' " # #

" *

5 6 !6

#

#

#

:

" "

/

# 9

#

!

%" %

" 6# # ""

# ;

# J !6 !

?

*

+ .

% B style=[just=center bordertopwidth=3 borderbottomwidth=3 borderleftwidth=0 borderrightwidth=3] #

# % 2

* & ' % # ! &8 +6& ' " # 2 " 2

" % 5

?

D #

*

# 5 # , ? D E I

% # (/ 5

"

6

*

-

# %

%

& ' # & ' #

* & ' " *

, % &$ ?

-

%

# #

"

#

'

.

"

6

#

!% 6

5

: 2 # % "

6

6

!

# "

%

% "

%

%

# 0K %

%

:

%

+6

2 #

6

6 #

% #

6 ,78

6.

# 89

I

"

!#

#

"

#

! #

5

#

".

"

#

# # # #

B

6 2 #

# %"

9

3

"

* #

# #

#

#

!

5 # ?

" #

#

+ '(

/ !#

#

SUGI 31

Hands-on Workshops

*

8+ '(

%

#

, ? #

5

"

# (/ % #

%5 %

+6

D7

! 6

" # % # # @

! % J:G6B

#

%

# #

#

6.

% 2 %

$# 6 %

,$!#)/!$ 5

-

'

,

# "

. %

B

# #

#

3 $$ &3 $4 / !( &3 7 %'

6

-

D

2 # " %

2 #

$

3

#! 6 & $4

6

!% 6 # %

"" 9 #

#

;

*

% &$ %'

! %

#

!# "

#

% "

%

%

()% ')$ )$

#

# 6 #

"

" #

#

?

(;'

# ""

6

%

:

!

% !

#

#

!

%

!

#

%

style data_z8 from data / tagattr='format:00000000'; # 6 J:G6 # # % 6--------6 % # # ! : % % # 89@ 89 # % * * B

# 6 % #

6 %"

!

var aecode / style(data)=data_z8; #

*

@

#

%

6

J:G6

H

" # # "

!" " FG % # 6 J:G6

#

! # #

%

#

SUGI 31

Hands-on Workshops

!

3& &3 ) $'

'%6 4

%

# #

"

!

!

2 2

# *

$ &!

&8 2

#

%" A

"" " # # % %

J

" %

%% # 2 #

%

" # # 2 # 2 #

#

2 # % # 2 #

# #

# # "" A J

%

#

%

/

" #

#

%"

# %

#

B

options center; title; footnote; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; ods tagsets.ExcelXP options(sheet_name='Data - Trial 1'); * Proc PRINT #1 here w/ style override; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2'); * Proc PRINT #2 here w/ style override; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2'); * Proc TABULATE #2 here; ods tagsets.ExcelXP close; #

2 #

!(9) $ &3 '/) &

#

! %

&8 # # #

# #

%

# *

#

%

($4 *'% $4

% # ' # /

# # * A %

#

5

% &$ %'

#

,

* #

% 68

%

()% ')$ )$

% #

#

# * # 6

%

# # #

# 6

# # %

6 #

%

proc print data=sample.aedata noobs label split='*'; by protocol; where protocol eq 'ABC 123'; id patient; id visit / style=rowheader_r_border style(header)=header_r_border; var aecode / style(data)=data_z8; var aetext--treat; label protocol = 'Protocol Identifier' patient = 'Patient*Identifier' visit = 'Visit*Identifier' aecode = '*Code' aetext = '*Preferred Term' aesev = '*Severity' frequency = '*Frequency' aesevc = '*Severity' treat = '*Treatment'; run; quit;

G

# * #

% * #

8'

#

# B

SUGI 31

Hands-on Workshops

%

# ' ( ' 6&/F )GH6

% ;

% # $ 6 # #

% AJ5;

% " # % % #

#

- HE

% K

#

%

L

# # AJ5;

$ (;'

#

# # $ # #

8'

K AJ5;

"

#

# # 89

#

#

%

" #

#

@ % * #

#

- HE

"

%

# < "

"

#

%" # # # 6 = - HE * #

#

" #

%

# 89

"

"

%" %

" #

"

(;'

# $

"

#

AJ5; !" "

" #

2

"

#

!

# #

*

"

B

options center; title; footnote; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; ods tagsets.ExcelXP options(sheet_name='Data - Trial 1' width_fudge='0.7'); * Proc PRINT #1 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2' width_fudge='0.7'); * Proc PRINT #2 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75'); * Proc TABULATE #2 here; ods tagsets.ExcelXP close; $# 89

# # $ "

AJ5; # %

"

#

% # # % $

#

#

# * #

# # #

%

# 1 " # ' A % # ( @'; J @'; J$ (;' 8 @ " 6

4!&3 &3 $4 #1 3%') /!# / /!

# "

% #

" +5

# D.

# (/ " 5 ?

options center !(9) $ &3 '/) &

# % "

%

* 5

#

9 2 #

% #

% # # * "

A

# 9> @ # " % # # (/ " # "" % # *

# " % !" options nocenter

"

($4 *'% $4 $!#)/!$

# (;'

"

#

@ *

# #

#

* % K

6

#

&$

"

#

#

(;'

%'

#

@

9 5 #

% " % ? D $# # # # (;' " # "

9 "

%"

#

()% ')$ )$

"

" #

"

)

1 %

#

!

"" &8

#

) %"

SUGI 31

Hands-on Workshops

% "

"

#

# %% 0 " # "" ! %

#

%

2 0

#

# % #

% %

#M+

# 6 % #6 ( @'; J @';

% "

0

( @'; % #

# "

%

#

#

J @'; # % B

#

# %" J$ A "

#

%

.N

# # " 6# # @

J$

&+# %

A #

"

"

:

6

"

% 6

: 6 6

#

#

#

" %

#

"

"

%

#

6 : 6 # *

" #

: .N+

6

(;'

2

" #

#

.

# * " # " : # # $ AJ5;

#

" ( +6 +6 6,

! % @8A 6 G G6 /

# (;' " # # ' 99 @ 6. # * 6 * 6 " * . # # * %" # " # !

*

#

% , # # % G # ( @'; J @'; J$ A (;' " B

# " "

#

ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75' absolute_column_width='21, 8, 8'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75' absolute_column_width='21, 8, 8'); * Proc TABULATE #2 here; #

# # %

# "

#

# * % 2 #

% "

K

%

% "

# *

!(( &3 *%'7 & '/) & 4 !( % !&( !)$'* /$ % $' $4

$# 2 # * # 89 " " ,, % * # # " 6 : 6 # L L " # FROZEN_HEADERS='2' !

#

#

#

# #

%

6

5

6

" !

( @';

# J @';

% # # " # "" ! % E% # 59@F JA 9 # " 59@F JA 9 ML L # : " , *

# %

5

5 "" # 68

* #

* %6 #

68

"

* %

2 # %6

# %

2 #

# "

5 6A

/

# !" 2 # 5 # HEADACHE 5 E # * 6A A 6 * # # " # #

* A 6 2 #

" 5 5

# !" # 6 * 6 % (All) % #

# "0

-

J$

()% ')$ )$

5 2 #

"

5 ! %"

5

#

:

#

% #

5

#

2 #

#

#

% &$ %'

# "

#

# Severe *

+

!

*

A

SUGI 31

Hands-on Workshops

5 6 6 # # %

# @ % 5

"

%

#

" (;'

; @5 ' 9 / % " %" # " " B

5

% 2

# 89 "

#

"

ods tagsets.ExcelXP options(sheet_name='Data - Trial 1' frozen_headers='2' autofilter='all');

" * # * 6 6 # ! @

6 6 :

width_fudge='0.7'

* Proc PRINT #1 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2' frozen_headers='2' autofilter='all');

width_fudge='0.7'

* Proc PRINT #2 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none'); * Proc TABULATE #2 here; % &$ '% &$!$ '& !&( %

#

"

# "

%

!$ &3 '/) & 4 !( % %'

# % "

# %" *

#

# ""

" 89@ 89 (;' " # " " # " ORIENTATION='landscape' ORIENTATION='portrait' # @ # "

# " "

#

"

#

5

"

, A

#

2 #

*

#

B"

"

# @ %

% "

# #

'1-2' #

# @ (;'

"

#

% "

%" # # 89 (;' "

#

# # 89 / #

"

#

" "

#

"

%

# "

#

#

O : # 9@$J9 8 # @

"

" %" # # # 89 "

"

"

" # * "

#

% # 'none'

% &$ 4 !( % !&( *''$ %

@ # " 5@@ (

#

% # ( % " J5@@ 9 "

@

#

# #

!

" #

&8 #

%# '

!

# *

# #

% (

" J

"

# '

#

% !

"

#

B

title '&CAdverse Event Data by Trial'; footnote '&LPrinted &D&RPage &P of &N'; # "

' # "

%

# 5@@ @ # " " ! # ! 68

"

#

" "

%

#

%

%"

# 6

# # !

# K

! 6 1

*

5 # # 6&D6 # #

*

6

6&C6

#

"

#

! 68 1 "

6

"" # %

0K

#

% "

# "

SUGI 31

Hands-on Workshops

$4 * &!/ !

$ #

'(

# %

"

#

#

""

B

options nocenter; title '&CAdverse Event Data by Trial'; footnote '&LPrinted &D&RPage &P of &N'; ods listing close; ods tagsets.ExcelXP path='output-directory' file='aedata.xml' style=SUGI31; ods tagsets.ExcelXP options(sheet_name='Data - Trial 1' width_fudge='0.7' frozen_headers='2' autofilter='all' orientation='landscape' row_repeat='1-2'); * Proc PRINT #1 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Data - Trial 2' width_fudge='0.7' frozen_headers='2' autofilter='all' orientation='landscape' row_repeat='1-2'); * Proc PRINT #2 here w/ style override and new labels; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 1' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none' orientation='portrait' row_repeat='none'); * Proc TABULATE #1 here; ods tagsets.ExcelXP options(sheet_name='Summary - Trial 2' width_fudge='0.75' absolute_column_width='21, 8, 8' frozen_headers='no' autofilter='none' orientation='portrait' row_repeat='none'); * Proc TABULATE #2 here; ods tagsets.ExcelXP close;

'%$ &3 5

2

I # %" % 2

)/$ # # #

!

!

!

"" #

6

# %> #

%" " 3

4

$ 5

/

'%6#''6

2 2 # % # 2 # # !" # " * % -:

5

% #

&$' !

%" *

# # 2 & ' "

2

" %" #

#

& ' 6 "

2

#

#

,

2

2

# & ' #

% "

8 0 #

!

2 # $ # 2 # # # # # ! & '

$ $ 2

2

#

$

SUGI 31

Hands-on Workshops

*

;+

(

!0 &3 !& 5

/

'%6#''6 ! 5 /

/ % * ! File ➨ Save As " " # " "

2

2 & ' XML Spreadsheet (*.xml) * # & ' % 6%

#

#

# 6% # # ( *

# #

"

#

)

#

$4 !)$' !$

/ 6 # % %

# 6. 3

% # # 2 #

# % #

%" # * # * #

# #

#

# %

#

20

*

5

#

* # ;9'

! #

% #

% *

#

% # $

" *

/ $' !

!" # * ! % %" # % # 2 # + ! %" # % A * # # 1 # 2 # % # 2 5 ! %" 2 # % 6D-0 -H 6 3 # # % * # +# " #. # # 2 # % * # 6D6 # * # % 6J-J -HJ J* 6 # % %" 6A #P$ 9 6 % 6A #JJJ J # # * # ! 2 # % 5

# *

I

% 5 2 " # +J.

#

#

# #

" % 5

! #

%

*

(!$! '&0 % '& *%'

2 #

! % #

#

* # % # $ * # # 1 5 8 %

"

#

%

#

%" " !% 6

!% 6

*

# % # # # " # # " # # % # #

% %

!

#

%

I # #

%

% #

% % #+>.

# 2 #

% #

%

?

# * *

% #

" %

# +J. 6

% %

% !

* %

*

SUGI 31

Hands-on Workshops

#

! %"

#

%

#

!

%

5

I

*

%

% / 1

+

2.

8!

""

8

+ "! +

! 5 / / #&!

#

& ''( # &' #

# #

> .


.

""

#

& ' !

#

%" * % # * % " % " & ' % " # # & ' %" "" + % 2 & ' . # #

% !

# * # 6' &' & '

!" 5

# I # #

2

& ' " # ! & ' %" & ' # " # #

# *

" & '

, #

!"

2

"

%"

+ "!

/ 5 / &$' !

# 2

2

2

#

%"

""

&

& '

#

" " & '

8

!

#

* %"

#

1 & ' %

J J

! #

# & ' 0

JJ " !

/

&3 & , 5/ . !&( 5 / !

#

" *

#

2J J /

% / "

! # 8!

:

&' # #

"

& %

8 ! J" "

2

$

! ?,0 # +J.

!

#

!

*

"

%

Q% 2 # & ' " 6 # 6' &'

# %

#

"

2

%

#

# "

# #

5

& ' # " "

2

# " &8 % "6 %

! %" B

2

% % # % #

* 6 !

% 6

%" %

% # # %

3

2

# & ' % # & '

#

#

& '

# #

% &'&8,

%"

*

% 2

! * " * "

# #

# & '

2

*

"" "

" # B

%include 'LoadXL.sas'; %xlxp2sas(excelfile=mydata.xml, mapfile=ExcelXP.map); # % %

# 5

% + .% 2 2 # # # ! %"

# &'&8, % * " ( # # # ; 9

# # "

%xlxp2sas(excelfile=mydata.xml, mapfile=ExcelXP.map, library=sasuser);

D

# ' (9 9/ % # B

%

+ . %" # # $@9C % # &'&8,

/

SUGI 31

Hands-on Workshops

, # 5

#

!

# %"

2 #

I % # 2 2 #

%

! $ # % "# J A #JJJ J-J -HJ

2 # # # # %

$ 5

H # %" 5 2 # "

*

=+

;"

"

# 6 I

2+

"#

H

#

#

! 3

# " 2 *

# A * * #

% #

- $

! / # % "# A #P$ D-0 -H

J J*

! $

9

-:

6 " # &'&8, % % 68 ! " " %

# #

5

&

# 6 #

$ %"

(' "" # 6 "# #+ .6 6 ,GN,6 " *

6 % 6,N,6

( 6 #

-

%" # # & ' %

# & '

# *

# $ #

% % # % %

* #

* # ;9'

B

filename myxml URL 'http://Web-server/mydata.xml'; %xlxp2sas(excelfile=FILEREF:myxml, mapfile=ExcelXP.map); #

%

&'&8, # 5' 9 5% $ * # *

# 8

# 3 *

;9' # # ;9' # * #

" #

#

#

"

" * %

"

*

# 2

#

# # *

2

"

!

*

" % >*

#

%

#

"

@ " 6 #

!

! ! #

% 8 "

# $

# *

# %

%let RV = %sysfunc(appsrv_header(Content-type,application/vnd.ms-excel)); options nocenter; title '&CAdverse Event Data by Trial'; footnote '&LPrinted &D&RPage &P of &N'; ods listing close; ods tagsets.ExcelXP file=_webout style=SUGI31; * Remainder of "final" SAS code; ods tagsets.ExcelXP close;

I

%

# B

SUGI 31

Hands-on Workshops

#

88 9 JA

9

" # $

# # #

#

# "

#

*

K ! %"

! %"

" #

#

# L

" "

>

+

% * "" " # ,--, ,--? ,--D.

# " * 5 ' 9 5 +J$ (@; . % # * # "

!

>

5

"

! %

%

%

8

%

#

'& /) '& #

) !"

!

&8 @

% # # & '0

!

& '' %

" "

%" % %

%

! #

2

& '

# # 2 # # # 1

"

& ' " % " @

# &'&8,

%

# 2 #

" # *

" * % #

#

"

%"

#

2

% *

!

&( 5

'( *'% % !$ &3 $4

)3

$1/

proc template; define style styles.SUGI31; parent = styles.Journal; /***************************************************************************** Use approximate "SUGI reddish brown" cx993300 for some foreground elements. Use black for other foreground elements. Use approximate "SUGI tan" cxffcc99 for some background elements. *****************************************************************************/ replace colors / 'docbg' = cxFFFFFF 'contentbg' = cxFFFFFF 'contentfg' = cx000000 'titlefg' = _undef_ 'link2' = cx0066AA 'link1' = cx004488 'bg5' = cxFFFFFF 'bg4' = cxFFFFFF 'fg4' = cx000000 'bg3' = cxFFFFFF 'fg3' = cx000000 'bg2' = cxffcc99 'bgA1' = cxFFFFFF 'fgA1' = cxff0000 'fg2' = cx993300 'fg' = cx993300; /*

/*

Header and Row Header cells

*/

/* /* /*

Border lines */ Header and Row Header cells Titles and Footnotes */

*/

Redefine some characteristics of some of the standard styles. style table from table / borderwidth = 0; style header from header / just = center font_weight = bold bordertopwidth = 3 borderbottomwidth = 3 borderleftwidth = 0 borderrightwidth = 0;

H

*/

SUGI 31

Hands-on Workshops

style rowheader from rowheader / font_weight = bold; /*

Controls border lines of some Header cells. style header_r_border just = bordertopwidth = borderbottomwidth = borderleftwidth = borderrightwidth =

/*

*/

from header / center 3 3 0 3;

Controls border lines of the TABULATE box cell. style header_box from just = bordertopwidth = borderbottomwidth = borderleftwidth = borderrightwidth =

/*

*/

header / center 3 3 0 3;

Controls border lines of some Row Header cells.

*/

style rowheader_r_border from rowheader / bordertopwidth = 0 borderbottomwidth = 0 borderleftwidth = 0 borderrightwidth = 3; /*

Assigns an Excel format to certain Data cells.

*/

style data_z8 from data / tagattr='format:00000000'; end; run; quit; #

#

%

" $ #

'/'%

5 *

"" ! 6

)

'%$ ( #1 5

# !

(

0 "" ""

# ""

5

#

%

( ?

%

! ""

# % !

6

%

# #

% +

;

! 2

! " "

#

/

# "

# ! #

5 !

#

# ! %: % # ""

#

#

# # L

;

?-

,--E.

*

! + ( :

G

-

2@@@

-/

SUGI 31

Hands-on Workshops

5/5 2 !

# 1

! %'

# *

!

"

%

#

#

""

!

%

%

( : 0

( "

&

" # # ! & ' # %" % 2 # * " 5' 9 5 FILEREF:fref " # % " # # & ' " %" ! & ' 1 % 2 # * " 5' 9 5 FILEREF:fref / " # & ' " % # 8 $ "" %> " 5 # 6 %" 0 # ! $ 2 2 # $ # 6 " # % # # %" " # # # ! 2 # # * % # # ! # "" 2 # 2 2 Y # # % % 2 2 # * % # # ! " N # # %" # # 0 5' 9 5 # # %" # ! 5' 9 5 # !" # 5' 9 5 % 0 # " N # * % # ' " Y * #

' (9 9/ ' ( '

'

#

%

1

'5 '

85 '

A

# &'&8,

*

;8

9(@

$@9C /

/

% * % & ,--, 6 *

# "B>>

# 1

,

%>"

,--? 6 ( 8 *

# "B>>

# "B>>

,

" %

# "B>>%

&'

R

!

! %>"

))) 6 # " B

+ !

#

*

# "B>>

9 "S

M>

6

8'

8'

@

R 09@

%>

" @

8 "

6 8 "

6

?I

* >

0

8

8

""

% 6 09@ 8 "

"" 09@

,G

#

>

EB #

)B

R@ "

& '6

% * ,H

#

! " ,G>-E,0,G "

9 # ??-> ?I0?- "

"

6& ' " %> >

(

*

*

,--D 6 # " &

" >

08

! " ,H>" HD0,H "

3

,--D 65 %

*

@

>

$ %>"

,

,--E 6

R

>

! ,2,># % > 6

B

B

)

#

J!%

"

!

%

6

)*%

HD

E,

SUGI 31

Hands-on Workshops

*)%$4 % % !( &3 6 ""

"

6 # "B>>

""

%>

%

(;' %>

8 %

*

# "B>>

6 # ""

#

*

8 %>

6 # 89 ""

#

6 *J

8 #>

# "B>>

! 6&' / (3

*

>

*

# "B>>

# 6

)>

> "

>

6 ,

""

%>

6 , >

>

>

"

##%

!#%

-)*. >) " >

>

>

J) ?>

J"

B JGD H "

J) ?>

J"

JGD H "

B

-)*. >) " >

&$ 2

#

2 #

(

#

*

#

" "

'&$! $ &*'% !$ '& /

%%

1

*

T

+ ""

!

%

0# % %>

2

" 2 # ". % >

" >

#

" # ;

@#

#

# B

%" * ,HE ? B +) ). IHH0G---

8#

" 5 %+

*

"

# %

2 " % %#%.

0

*

# " #

% ;

R % 2

1 %

#

" % 2

; *

% 2

"

,-

*

%"

% 2

"9 1