Exporting SAS Data sets and creating ODS files for Microsoft Excel

advertisement
EXPORTING SAS® DATA SETS AND CREATING
ODS FILES FOR MICROSOFT EXCEL
GEORGIOS KARAGIANNIS, SAS SUPPORT
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
OUTPUT DELIVERY SYSTEM
•
You can use ODS statements to send output from procedures to a variety
of destinations.
PROC Step
EXCEL
HTML
RTF
XML
PDF
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
CSV
OVERVIEW OF METHODS
The following methods enable you to create a file that can be opened with
Excel or other software products:
Data Set Methods
•
EXPORT procedure
• SAS LIBNAME Engine for Excel
Procedure Output Methods via ODS
•
CSV and CSVALL
• MSOFFICE2K and MSOFFICE2K_X
• TABLEEDITOR
• EXCELXP
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
WHAT DO YOU WANT TO EXPORT?
Exporting…
Technique
SAS Data Set
EXPORT Procedure
Excel LIBNAME Engine
SAS Procedure Output
Output Delivery System
4
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
EXPORTING PROCEDURE OUTPUT VIA ODS
Destination
Type of File Created
CSV and CSVALL
CSV
MSOFFICE2K
HTML
MSOFFICE2K_X
HTML
TABLEEDITOR
HTML
EXCELXP
XML
5
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
SAS/ACCESS INTERFACE TO PC FILES
•
SAS/ACCESS Interface to PC Files imports various PC file formats to SAS
data sets and exports SAS data sets to various PC file formats.
•
It provides several methods for data transfer, including the following:
•
Import and Export Wizards
• IMPORT and EXPORT procedures
• Microsoft Excel LIBNAME engine
6
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
EXPORT PROCEDURE SYNTAX
proc export data=orion.employees
outfile="&path\Employees.xls"
dbms=excelcs replace;
sheet="All_Employees";
run;
PROC EXPORT DATA=SAS-data-set<(SAS-data-set-options)>
OUTFILE="workbook-name"
DBMS=identifier <REPLACE> <LABEL>;
<SHEET="worksheet-name";>
RUN;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
EXCEL LIBNAME ENGINE
libname xlsdata "&path\libname.xls";
data xlsdata.addresses(drop=numzip);
set orion.addresses(rename=(zipcode=numzip));
zipcode=put(numzip,
z5.);
• The
SAS/ACCESS LIBNAME statement
extends the LIBNAME statement to
run;
support assigning a library reference name (libref) to Microsoft Excel
workbooks.
libname xlsdata clear;
LIBNAME libref <EXCEL> 'location-of-Excel-workbook.xls' <options>;
“Bitness” Matches
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
PCFILES LIBNAME ENGINE
The SAS PC Files Server is an additional client installation that is required when
•
64-bit SAS is communicating to 32-bit Office
• 32-bit SAS is communicating to 64-bit Office
• you work on the UNIX platform.
libname xlsdata pcfiles path="&path\libname.xls";
data xlsdata.addresses(drop=numzip);
set orion.addresses(rename=(zipcode=numzip));
zipcode=put(numzip, z5.);
run;
LIBNAME libref
PCFILES
libname
xlsdata
clear;
PATH='location-of-Excel-workbook.xls'
<SERVER='machinename.domain.com|IP-address'>
<PORT=9621|8621>;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
CSV DESTINATION
ods csv file="&path\empsummary.csv";
proc report data=orion.employees nowd;
title 'Summary of Salaries from Orion.Employees';
column country gender salary;
define country/group;
define gender/group;
• The
CSV destination
creates a comma-separated-value
file that can be
define
salary/mean
'Average Salary';
opened in Excel.
run;
ods csv close;
ODS CSV FILE='filename.csv';
… SAS code …
ODS CSV CLOSE;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
CSV DESTINATION
Notepad
•
Excel
The output is unformatted because SAS style templates are not
supported.
• Via Notepad
Via Excel
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
CSVALL DESTINATION
•
The CSVALL destination preserves SAS titles, footnotes, procedure titles,
notes, and BY lines.
ods csvall file="&path\summarytitle.csv";
proc report data=orion.employees nowd ;
title 'Summary of Salaries from Orion.Employees';
column country gender salary;
define country/group;
define gender/group;
define salary/mean 'Average Salary';
run;
ods csvall close;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
CSVALL DESTINATION
SAS title
•Partial
ODS CSVALL Output
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
IN THE BEGINNING…
ODS HTML FILE='filename.html' STYLE=style-template;
•
Starting with Microsoft Office 97, using the HTML tags and styles, Excel could
open HTML files and display them appropriately.
•
generates the following:
SAS 8
HTML 3.2 W3C Compliant File
SAS®9
HTML 4.0 W3C Compliant File
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
AND THEN CAME MSOFFICE2K
In SAS®9, the MSOFFICE2K destination produces
a Microsoft Office HTML-compliant file that can
be opened with Microsoft Office 2000 and later.
ods msoffice2k file="&path\msoffice2k.xls"
style=sasweb;
<additional SAS statements>
ods msoffice2k close;
 MSOFFICE2K output can include graphics and tables.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
MSOFFICE2K OUTPUT AS SEEN BY EXCEL
Titles span
across cells.
A style template
is maintained.
The worksheet
is assigned
the filename.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
MSOFFICE2K_X DESTINATION
MSOFFICE2K_X is an enhancement to the MSOFFICE2K destination. It
provides options that are not currently available with MSOFFICE2K.
Enhancements include the following:
•
•
•
•
•
customizing worksheet names
multiple worksheets per workbook
rotated column headings
frozen headers
Paneling
The MSOFFICE2K_X destination is not a part of the SAS installation. The source
code must be downloaded and submitted. It can be accessed from the following
link:
http://support.sas.com/rnd/base/ods/odsmarkup/msoffice2k/index.html
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
EXCELXP BASICS
The EXCELXP destination
•
cannot update existing workbooks. ODS creates the entire document on each
execution.
•
puts each table generated by a SAS procedure in a separate worksheet.
•
does not support images, so the output from graphic procedures cannot be used.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
EXCELXP DESTINATION
ODS TAGSETS.EXCELXP FILE='filename.xls';
ods tagsets.excelxp style=sasweb
file="&path\summary_excelxp.xls";
proc report data=orion.employees nowd;
column country gender salary;
define country/group;
define gender/group;
define salary/mean 'Average Salary';
title 'Using ExcelXP';
run;
ods tagsets.excelxp close;
ODS TAGSETS.EXCELXP CLOSE;
 The EXCELXP destination requires the two-level specification in the
ODS statement.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
EMBEDDING TITLES AND FOOTNOTES
ods tagsets.excelxp style=sasweb
file="&path\embedded_titles.xls"
options(embedded_titles='yes');
To embed footnotes, use the
EMBEDDED_FOOTNOTES=
suboption.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
PRESERVING LEADING ZEROS
•
You can embed Microsoft formats into the file by specifying the
TAGATTR= attribute in the STYLE= override.
ods tagsets.excelxp style=sasweb
file="&path\leadingzeros.xls";
proc print data=orion.addresses noobs;
var employee_id employee_name state;
var zipcode / style={tagattr='00000'};
run;
STYLE={TAGATTR='MSO-NUMBER-FORMAT'}
ods tagsets.excelxp close;
• PROC PRINT
• PROC REPORT
• PROC TABULATE
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
MICROSOFT FORMATS
SAS Value
mso-number-format
Excel Value
18853
00000
18853
18853
0000000
0018853
9999
0000.0
9999.0
18853
##00000
18853
9999
$###,###,##0.0
$9,999.0
.123
##0.000\%
0.123%
.123
##0.000%
12.300%
Microsoft formats can contain a 0, a #, and any
nonnumeric character. The 0 instructs Excel to display
a single numeric digit and leading zeros. The # displays
a single numeric digit but no leading zeros.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
EXCELXP DOCUMENTATION
•
The EXCELXP destination is a self-documenting destination.
Documentation can be extracted
to the SAS log by submitting this statement:
ods tagsets.excelxp file="dummy.xls"
options(doc='help');
ods tagsets.excelxp close;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
COMBINING RESULTS INTO A SINGLE WORKSHEET
ods tagsets.excelxp style=sasweb
file="&path\singlesheet.xls"
options(sheet_interval='none');
proc freq data=sorted;
by age_group;
table country;
run;
ods tagsets.excelxp close;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
SHEET_INTERVAL= SUBOPTION
•
The SHEET_INTERVAL= suboption controls how many tables are placed in a
worksheet.
Values
TABLE
One table per worksheet (default)
PAGE
One worksheet for each generated page
BYGROUP One worksheet per BY group
PROC
One worksheet for each procedure’s output;
ignores BY groups and page breaks
NONE
All results sent to the same worksheet
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
ADDITIONAL INFORMATION
•
http://support.sas.com/rnd/base/ods/odsmarkup/index.html
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
TABLEEDITOR DESTINATION
•
The TABLEEDITOR destination enables you to create Microsoft PivotTable
reports. It provides an extensive list of options for customizing your
PivotTable reports.
•
The TABLEEDITOR destination is not a part of the SAS installation. The
source code must be downloaded and submitted. It can be accessed from
the following:
http://support.sas.com/rnd/base/ods/odsmarkup/tableeditor/index.html
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
TABLEEDITOR DESTINATION SUBOPTIONS
PIVOTPAGE=
PIVOTROW=
PIVOTCOL=
PIVOTDATA=
PIVOTDATA_STAT=
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
TABLEEDITOR DESTINATION SUBOPTIONS
ods tagsets.tableeditor style=sasweb
file="&path\pivottable.html"
options(pivotpage="country"
pivotrow="department"
pivotcol="gender"
pivotdata="salary"
pivotdata_stats="sum");
The file extension
must be HTML.
proc print data=orion.employees noobs;
var country department job_title gender
salary;
run;
ods tagsets.tableeditor close;
 The TABLEEDITOR destination requires the two-level
specification in the ODS statement.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
HOW THE TABLEEDITOR DESTINATION WORKS
The TABLEEDITOR destination generates an HTML file. The HTML file
contains
•
the data for the PivotTable report
• a button to export the data to the PivotTable report.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
TABLEEDITOR DOCUMENTATION
•
The TABLEEDITOR destination is a self-documenting destination.
Documentation can be extracted to the SAS log by submitting the following
statement:
ods tagsets.tableeditor file="&path\dummy.html"
options(doc='help');
ods tagset.tableeditor close;
•
Additional information can be found at the following:
http://support.sas.com/resources/papers/proceedings10/003-2010.pdf
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
COMPARING METHODOLOGIES
CSV
HTML XML
MULTIPLE
STYLE SHEETS GRAPHICS
CSV
Yes
No
No
No
No
No
CSVALL
yes
No
No
No
No
No
MSOFFICE2K
No
Yes
No
Yes
No
yes
MSOFFICE2K_X No
Yes
No
Yes
Yes
yes
TABLEEDITOR
No
Yes
No
No*
No
No
EXCELXP
No
No
Yes
Yes
Yes
No
* Yes for html, no for pivot
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
Download