display pdf in iframe mvc : How to save a pdf after rotating pages SDK Library API .net asp.net web page sharepoint 150-20120-part242

Paper 150-2012 
An Introduction to Creating Multi-Sheet Microsoft Excel Workbooks the Easy Way 
with SAS
®
Vincent DelGobbo, SAS Institute Inc., Cary, NC 
ABSTRACT 
This paper explains how to use Base SAS
® 
9 software to create multi-sheet Excel workbooks (for Excel versions 2002 and later).  
You learn step-by-step techniques for quickly and easily creating attractive multi-sheet Excel workbooks that contain your SAS 
output using the ExcelXP ODS tagset and ODS styles.  The techniques that are presented in this paper can be used regardless of 
the platform on which SAS software is installed.  You can even use them on a mainframe!  Creating and delivering your workbooks 
on-demand and in real time using SAS server technology is discussed.  Although the title is similar to previous papers by this 
author, this paper contains new and revised material not previously presented. 
INTRODUCTION 
This paper provides you with step-by-step instructions for using Base SAS 9.1.3 or later to create the Excel workbook 
shown in Figure 1. 
Figure 1.  Multi-Sheet Excel Workbook Generated by the ExcelXP ODS Tagset 
The workbook contains two worksheets containing fictional demographic data for male and female students.  
Different background colors are used to further distinguish the male and female data values. 
Hands-on Workshops
SAS Global Forum 2012
12
2
How to save a pdf after rotating pages - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
reverse pdf page order online; how to reverse page order in pdf
How to save a pdf after rotating pages - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
pdf rotate single page reader; pdf rotate pages separately
You can download a copy of the code and data used in this paper from the SAS Presents Web site at 
support.sas.com/saspresents.  Find the entry "An Introduction to Creating Multi-Sheet Microsoft Excel Workbooks the 
Easy Way with SAS
®
". 
The code in this paper was tested using SAS
®
9.3 and Microsoft Excel 2010 software. 
REQUIREMENTS 
To use the techniques described in this paper, you must have the following software: 
Base SAS 9.1.3 Service Pack 4 or later, on any supported operating system (z/OS, UNIX, etc.) and 
hardware. 
Microsoft Excel 2002 or later (also referred to as Microsoft Excel XP). 
An updated version of the SAS ExcelXP ODS tagset. 
For information about obtaining an updated version of the tagset, see "The ExcelXP Tagset" section later in 
this paper. 
LIMITATIONS 
Because the ExcelXP ODS tagset creates files that conform to the Microsoft XML Spreadsheet Specification, you can 
create multi-sheet Excel workbooks containing the output from almost any SAS procedure.  The exception is that the 
Microsoft XML Spreadsheet Specification does not support images, so the output from SAS/GRAPH
®
software 
procedures cannot be used (Microsoft Corporation 2001). 
You can use ExcelXP tagset options with all procedure output, but ODS style overrides apply only to the PRINT, 
REPORT, and TABULATE procedures.  Tagset options and style overrides are discussed in the sections 
"Understanding and Using the ExcelXP Tagset Options" and "Understanding and Using ODS Style Overrides", 
respectively. 
Finally, you cannot use the techniques described in this paper to update existing workbooks; ODS creates the entire 
document on each execution, and cannot alter existing workbooks. 
SAMPLE DATA 
The code in this paper uses the CLASS data set, available in the SASHELP library of your SAS installation.  Figure 2 
presents an abbreviated view of PROC PRINT output viewed in the SAS Display Manager Output window.  Note that 
the height and weight values are formatted to display one decimal place. 
Name       Age    Height    Weight
Alfred      14     69.0      112.5 
Henry       14     63.5      102.5 
James       12     57.3       83.0 
...
Name       Age    Height    Weight
Alice       13     56.5       84.0 
Barbara     13     65.3       98.0 
Carol       14     62.8      102.5 
...
Figure 2.  PROC PRINT Output Viewed in the Output Window 
Hands-on Workshops
SAS Global Forum 2012
12
2
VB.NET Word: VB.NET Code to Rotate Word Page Within .NET Imaging
Here, we can recommend you VB.NET PDF page rotating tutorial Without losing any original quality during or after the Word page rotating; Save the rotated
how to rotate pdf pages and save permanently; save pdf after rotating pages
VB.NET Image: Image Rotator SDK; .NET Document Image Rotation
rotator control SDK allows developers to save rotated image That is to say, after you run following powerful & profession imaging controls, PDF document, tiff
rotate single page in pdf reader; rotate pdf page by page
OUTPUT DELIVERY SYSTEM (ODS) BASICS 
ODS is the part of Base SAS software that enables you to generate different types of output from your procedure 
code.  An ODS destination controls the type of output that is generated (HTML, RTF, PDF, etc.).  An ODS style 
controls the appearance of the output.  In this paper, we use a type of ODS destination, called a tagset, that creates 
XML output that can be opened with Excel.  This tagset, named ExcelXP, creates an Excel workbook that has 
multiple worksheets. 
The Excel workbook in Figure 1 was created using the ExcelXP ODS tagset and the "Printer" ODS style supplied by 
SAS.  The ExcelXP tagset creates an XML file that, when opened by Excel, is rendered as a multi-sheet workbook.  
All formatting and layout are performed by SAS; there is no need to "hand-edit" the Excel workbook.  You simply use 
Excel to open the file created by ODS. 
Here are the general ODS statements needed to generate XML output that is compatible with Excel 2002 and later: 
 ods _all_ close; 
 ods tagsets.ExcelXP file='file-name.xml' style=style-name ... ; 
 Your SAS procedure code here; 
 ods tagsets.ExcelXP close; 
The first ODS statement (
) closes all destinations that are open, because we want to generate only XML output for 
use with Excel. 
The second ODS statement (
) uses the ExcelXP tagset to generate the XML output and then store the output in a 
file.  You should use the "xml" extension instead of "xls" or "xlsx", because Excel 2007 and 2010 display a warning if 
the "xml" extension is not used (Microsoft Corporation 2012b).  The STYLE option controls the appearance of the 
output, such as the font and color scheme.  To see a list of ODS styles that are available for use at your site, submit 
the following SAS code: 
ods _all_ close; 
ods listing; 
proc template; list styles; run; quit; 
To find the SAS code that generates sample output for the ODS styles available on your system, click the "Full Code" 
tab in SAS Sample 36900 (SAS Institute Inc. 2009). 
The third ODS statement (
) closes the ExcelXP destination and releases the XML file so that it can be opened with 
Excel. 
Although you can store your output on a local disk (where SAS software is installed), or on a network-accessible disk, 
here are some good reasons to store your SAS output on a Web server: 
The files are
available to anyone who has network access. 
The XML files can be accessed by Web-enabled applications other than Excel. 
You can take advantage of Web server authentication and security models. 
Note: If you place the files where users can access them over a network, you should set file permissions to prevent 
accidental alteration. 
OPENING THE OUTPUT WITH EXCEL 
To open an ODS-generated file that is stored on a Web server, follow these steps: 
1.  In Excel 2002, 2003, or 2010, select 
File  Open
In Excel 2007 select 
Office Button  Open
2.  In the 
File name
field, specify the full URL for the file that you want to open.  For example,  
http://Web-server/directory/file-name.xml
3.  Click 
Open
to import the XML file. 
Hands-on Workshops
SAS Global Forum 2012
12
2
VB.NET Image: Web Image and Document Viewer Creation & Design
and print such documents and images as JPEG, BMP, GIF, PNG, TIFF, PDF, etc. Upload, Open, Save & Download Images & Docs with Web Viewer. After creating a
rotate individual pdf pages reader; rotate a pdf page
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
of this VB.NET image cropping process: decode the source image file to bitmap, crop bitmap and save cropped bitmap to original image format. After you run this
rotate pdf pages individually; rotate one page in pdf reader
To open ODS-generated files from a local or network-accessible disk, follow the same steps, except in step 2 you 
should either navigate to the file or type the path and file name in the 
File name
field.  You can also navigate to the 
file using Microsoft Windows Explorer, and then double-click the file to open it with Excel. 
If you encounter a "problem during load" error when you attempt to open the file with Excel, see "Diagnosing Excel 
Load Errors" in the appendix. 
Excel reads and converts the XML file to the Excel format.  After the conversion, you can perform any Excel function 
on the data.  To save a copy of the file in Excel binary (xls) format using Excel 2002, 2003, or 2010, select  
File  Save As
and then, from the 
Save as type
drop-down list, select 
Microsoft Excel Workbook 
(*.xls)
 If you're using Excel 2007, click the Microsoft Office Button, and then select 
Save As  Excel 
97-2003 Workbook
. If you're using Excel 2007 or 2010 and want to save the document in the Microsoft Office 
Open XML format, choose 
Excel Workbook (*.xlsx)
from the 
Save as type
drop-down list. 
SETTING UP THE ODS ENVIRONMENT 
Our sample code uses an updated version of the ExcelXP tagset.  The following statements define the location where 
the tagset is stored on your system: 
 libname mylib 'some-directory'; * Location to store the tagset; 
 ods path (prepend) mylib.tmplmst(update); 
The LIBNAME statement (
) specifies where to store the compiled tagset.  Although you can temporarily store the 
tagset in the WORK library, it is more efficient to compile it once, and then store it in a permanent library so that you 
can reference it in other SAS programs. 
The ODS PATH statement (
) specifies the locations of, and the order in which to search for, ODS tagsets and 
styles.  Notice that the access mode for 
mylib.tmplmst
is specified as "update" and it is first in the search path as 
a result of the "prepend" option.  Because ODS searches the path in the order given, and the access mode for 
mylib.tmplmst
is "update", PROC TEMPLATE, used later in this paper, compiles and stores the tagset in a file 
named "tmplmst.sas7bitm" in the directory that is associated with the "mylib" library. 
Submit this code to display the ODS search path: 
ods path show; 
THE EXCELXP TAGSET 
Once you have issued the appropriate ODS PATH statement, you can import an updated version of the ExcelXP 
tagset and use it in your SAS programs.  The version of the tagset used in this paper can be found in the download 
package on the SAS Presents Web site at support.sas.com/saspresents.  Find the entry "An Introduction to Creating 
Multi-Sheet Microsoft Excel Workbooks the Easy Way with SAS".  The download package contains a file named 
"ExcelXP.sas", which contains the SAS code for creating the ExcelXP tagset.  Save a local copy of this file, and then 
submit the following SAS code to make the tagset available: 
%include 'ExcelXP.sas';  * Specify the path to the file, if necessary; 
You need to submit this code only once.  The ExcelXP tagset is imported and stored in the directory corresponding to 
the "mylib" library.  All of your future SAS programs can access the tagset by specifying "read" access in the 
LIBNAME and ODS PATH statements: 
libname mylib 'some-directory' access=read; * Location to store the tagset; 
ods path (prepend) mylib.tmplmst(read); 
The ExcelXP tagset supports many options that control both the appearance and functionality of the Excel workbook.   
Hands-on Workshops
SAS Global Forum 2012
12
2
VB.NET Image: How to Process & Edit Image Using VB.NET Image
Q 2: After I apply various image processing functions to source image file editor control SDK allows developers process target image file and save edited image
pdf expert rotate page; how to rotate one page in a pdf file
VB.NET Image: Creating Hotspot Annotation for Visual Basic .NET
hotspot annotation styles before and after its activation img = obj.CreateAnnotation() img.Save(folderName & & profession imaging controls, PDF document, tiff
pdf rotate just one page; rotate pdf pages by degrees
To see a listing of the supported options, submit the following SAS code: 
filename temp temp; 
ods tagsets.ExcelXP file=temp options(doc='help'); 
ods tagsets.ExcelXP close; 
The tagset information is printed to the SAS log.  For your convenience, a listing of the supported options is included 
in the download package for this paper. 
IMPORTANT NOTE 
The version of the ExcelXP tagset that was shipped with Base SAS
®
9 has undergone many revisions since its initial 
release.  To take advantage of the features discussed in this paper, you must download an updated version of the 
tagset and install it on your system as described previously.  Although this paper was tested with the ExcelXP tagset 
available on the SAS Presents site mentioned earlier, the latest version of the PROC TEMPLATE code to create the 
ExcelXP tagset can be found on the ODS Web site (SAS Institute Inc. 2012). 
There is currently no notification system for tagset updates.  To ensure that you have a recent version, compare the 
ExcelXP tagset version, displayed in the SAS log whenever the tagset is used, to the version available on the ODS 
Web site. 
A BRIEF ANATOMY OF ODS STYLES 
ODS styles control all aspects of the appearance of the output, and Base SAS software ships with more than 50 
different styles.  A style contains style elements, each of which controls a particular part of the output.  For example, a 
style element named "header" controls the appearance of column headings.  Style elements consist of collections of 
style attributes, such as the background color and font size. 
Use the ODS tagset named "style_popup" when you need to determine the attributes of style elements.  The tagset 
creates an HTML file that, when viewed using the SAS Results window or the Microsoft Internet Explorer Web 
browser, displays style element information in popup windows (SAS Institute Inc. 2011d). 
For example, to see the style attributes of the "header" style element of the "Printer" style, follow these steps: 
1.  Submit this SAS code: 
ods results; 
ods _all_ close; 
ods tagsets.style_popup path='output-directory' file='temp.htm' style=Printer; 
 Your SAS procedure code here; 
ods tagsets.style_popup close; 
2.  View the HTML output using the SAS Results window or Microsoft Internet Explorer. 
3.  Click on a column heading to display a popup window containing the style element name ("header") and 
style attribute information for that cell (Figure 3). 
4.  Repeat step 3 for other areas of interest, for example, data cells. 
To display the full definition of a style, submit this code: 
proc template; 
source styles.style-name; 
run; quit; 
Hands-on Workshops
SAS Global Forum 2012
12
2
VB.NET Image: VB.NET Code to Add Rubber Stamp Annotation to Image
on image or document files; Able to save created rubber Suitable for VB.NET PDF, Word & TIFF document Method for Drawing Rubber Stamp Annotation. After you have
how to reverse pages in pdf; how to rotate all pages in pdf
VB.NET PDF: VB Code to Create PDF Windows Viewer Using DocImage
What's more, after you have created a basic PDF document viewer in your VB.NET Windows application, more imaging viewer Save current PDF page or the
rotate pages in pdf online; how to rotate just one page in pdf
Figure 3.  Style Attributes of the "header" Style Element 
USING ODS TO CREATE THE MULTI-SHEET EXCEL WORKBOOK 
By default, the ExcelXP tagset creates a new worksheet when a SAS procedure creates new tabular output.  PROC 
PRINT is run twice and, because each execution creates one table as output, the workbook contains 2 worksheets. 
Here is a listing of the basic SAS code used to create the Excel workbook.  
ods _all_ close; 
ods tagsets.ExcelXP path='output-directory' file='MyWorkbook.xml' 
style=Printer; 
title 'The CLASS Data Set'; 
footnote '(From the SASHELP Library)'; 
proc print data=sashelp.class noobs; 
where (sex eq 'M'); 
var name age height weight; 
run; quit; 
proc print data=sashelp.class noobs; 
where (sex eq 'F'); 
var name age height weight; 
run; quit;  
ods tagsets.ExcelXP close; 
As you can see in the ODS statement (
), the ExcelXP tagset generates the output, and the "Printer" style controls 
the appearance of the output.  The PRINT procedure is run once to create a worksheet containing data for the male 
students, and then again to create a worksheet for female students (
and 
).  The last ODS statement (
) closes 
the ExcelXP destination and releases the XML file so that it can be opened with Excel. 
Figure 4 displays the results of executing the basic SAS code, and opening the resulting "MyWorkbook.xml" file with 
Excel. 
Hands-on Workshops
SAS Global Forum 2012
12
2
VB.NET Word: VB.NET Code to Draw and Write Text and Graphics on
After creating text on Word page, users are able doc, fileNameadd, New WordEncoder()) 'save word End powerful & profession imaging controls, PDF document, tiff
rotate pdf page; rotate all pages in pdf preview
Figure 4.  Initial ExcelXP ODS Tagset-Generated Workbook 
Notice that Figure 4 does not match Figure 1.  The following problems are exhibited in Figure 4: 
1.  Unattractive, default worksheet names are used. 
2.  Title and footnote text is missing. 
3.  Column B does not contain an Excel AutoFilter. 
4.  The column heading text is not centered. 
5.  The background color for all data cells is white. 
6.  Not all of the data values for height and weight are displayed with 1 decimal place. 
We can now change the basic SAS code to correct these problems.  The complete SAS code used to create the 
workbook shown in Figure 1 is listed in the section "The Final SAS Code". 
UNDERSTANDING AND USING THE EXCELXP TAGSET OPTIONS  
As mentioned above, the ExcelXP tagset supports many options that control both the appearance and functionality of 
the Excel workbook.  Many of these tagset options are simply tied directly into existing Excel options or features.  
Tagset options are specified in an ODS statement using the OPTIONS keyword: 
ods tagsets.ExcelXP options(option-name1='value1' option-name2='value2' ...) ... ; 
Note that the value that you specify for a tagset option remains in effect until the ExcelXP destination is closed, or the 
option is set to another value.  Because multiple ODS statements are allowed, it is good practice, in terms of 
functionality and code readability, to explicitly reset tagset options to their default value when you are finished using 
them.   
Hands-on Workshops
SAS Global Forum 2012
12
2
For example: 
ods tagsets.ExcelXP options(option-name='some-value'); 
*  Some SAS procedure code here; 
ods tagsets.ExcelXP options(option-name='default-value'); 
*  Other SAS procedure code here; 
When specifying additional ODS statements as shown above, do not specify the 
file
style
, or any other keyword 
or option that is supported by ODS.  Those options should be specified only on the initial ODS statement. 
Tagset options are supported for all SAS procedure output, unlike ODS style overrides, which are supported only by 
the PRINT, REPORT, and TABULATE procedures. 
SPECIFYING WORKSHEET NAMES 
ODS generates a unique name for each worksheet, as required by Excel.  Figure 4 shows the worksheet names that 
result from running the initial SAS code.  There are, however, several tagset options that you can use to alter the 
names of the worksheets. 
Use the SHEET_NAME option to explicitly specify a worksheet name.  Recall that tagset options remain in effect until 
the ExcelXP destination is closed.  We specify the option twice because we want a different name for each 
worksheet. 
ods tagsets.ExcelXP path='...' file='...' style=Printer; 
title '...'; footnote '...'; 
ods tagsets.ExcelXP options(sheet_name='Male Students'); 
proc print data=sashelp.class noobs; 
where (sex eq 'M'); 
var name age height weight; 
run; quit; 
ods tagsets.ExcelXP options(sheet_name='Female Students'); 
proc print data=sashelp.class noobs; 
where (sex eq 'F'); 
var name age height weight; 
run; quit;  
ods tagsets.ExcelXP close; 
Refer to this author's earlier papers for techniques used to automatically generate worksheet names from BY group 
values (DelGobbo 2009, 2010, 2011) 
INCLUDING TITLE AND FOOTNOTE TEXT IN THE WORKSHEET BODY  
By default, SAS titles and footnotes appear as Excel print headers and print footers, respectively, which are displayed 
when the Excel document is printed.  You can confirm this by viewing the Excel "Header/Footer" tab in the "Page 
Setup" dialog box, shown in Figure 5. 
Hands-on Workshops
SAS Global Forum 2012
12
2
Figure 5.  Excel Page Setup Dialog Box Showing Title  
and Footnote Text 
To include title and footnote text on-screen, in the worksheet body, use the EMBEDDED_TITLES and 
EMBEDDED_FOOTNOTES options: 
 Set some "global" tagset options that affect all worksheets; 
ods tagsets.ExcelXP options(embedded_titles='yes' 
embedded_footnotes='yes');  
ods tagsets.ExcelXP options(sheet_name='Male Students'); 
proc print data=sashelp.class noobs; where (sex eq 'M'); ... ; run; quit; 
ods tagsets.ExcelXP options(sheet_name='Female Students'); 
proc print data=sashelp.class noobs; where (sex eq 'F'); ... ; run; quit;  
Because tagset options remain in effect until their value is changed or the destination is closed, the 
EMBEDDED_TITLES and EMBEDDED_FOOTNOTES options affect both worksheets. 
SPECIFYING EXCEL PRINT HEADERS AND FOOTERS 
Although the name of each worksheet includes the gender presented in the data, this information is not shown when 
the workbook is printed.  You can add Excel print headers and footers to display this information.  Excel allows you to 
define custom print headers and footers from the "Header/Footer" tab in the "Page Setup" dialog box (Figure 5).  To 
use Excel to manually insert the worksheet name in the header, click the "Custom Header" button to open the 
"Header" dialog box shown in Figure 6.  Then click the "Insert Sheet Name" button. 
Hands-on Workshops
SAS Global Forum 2012
12
2
10 
Figure 6.  Excel Header Dialog Box 
You can also control the header and footer from SAS code using the PRINT_HEADER and PRINT_FOOTER tagset 
options.  In addition to plain text, you can specify Excel control sequences (Table 1) that provide the same 
functionality as the buttons shown in Figure 6.  For example, use 
&A
to insert the worksheet name into the header. 
Control 
Sequence 
Function 
&C 
Center text 
&A 
Insert sheet name 
&R 
Right-justify text 
&P 
Insert page number 
&N 
Insert number of pages 
&D 
Insert date 
&T 
Insert time 
&F 
Insert file name 
&Z 
Insert file path 
&L 
Left-justify text 
&Uyour-text&U 
Single underline your-text 
&Eyour-text&E 
Double underline your-text 
&Syour-text&S 
Strikethrough your-text 
&Xyour-text &X 
Superscript your-text 
&Yyour-text &Y 
Subscript your-text 
&& 
Insert literal & 
Table 1.  Excel Print Header and Footer Control Sequences 
We use plain text and several control sequences to add useful information to our header and footer: 
 Set some "global" tagset options that affect all worksheets; 
ods tagsets.ExcelXP options(embedded_titles='yes' 
embedded_footnotes='yes' 
print_header='&C&A&RPage &P of &N' 
print_footer='&RPrinted &D at &T'); 
The resulting print headers and footers are shown in Figure 7. 
Hands-on Workshops
SAS Global Forum 2012
12
2
Documents you may be interested
Documents you may be interested