how to upload pdf file in c# windows application : Searching pdf files for text Library SDK class asp.net wpf .net ajax PharmaSUG-2013-HT07-SAS0-part634

PharmaSUG 2013 - Paper HT07-SAS 
Some Techniques for Integrating SAS
®
Output with 
Microsoft Excel Using Base SAS
®
Vincent DelGobbo, SAS Institute Inc., Cary, NC 
ABSTRACT 
This paper explains some techniques to integrate your SAS
®
output with Microsoft Excel.  The techniques that are 
presented in this paper require Base SAS
®
9.1.3 SP4 and above, and can be used regardless of the platform on 
which SAS 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 discusses three techniques for using Base SAS to get data into Excel.  Technique #1 produces a comma-
separated value (CSV) file that contains only data and no formatting of any kind.  Technique #2 produces a CSV file 
with data and some grouping, but still no formatting and color.  Technique #3 produces the workbook in Figure 1, 
complete with formats, colors, and correct groupings.  The paper concludes with a discussion of how to drive dynamic 
data to Excel using SAS server technology.  
Figure 1.  Multi-Sheet Excel Workbook Generated Using Base SAS Software 
Searching pdf files for text - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
converting pdf to searchable text format; convert a scanned pdf to searchable text
Searching pdf files for text - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
search pdf documents for text; how to select text in a pdf
The worksheets contain fictional vital signs data for clinical trials "ABC 123" and "XYZ 987".  The worksheets contain 
one table for each patient enrolled in the trial, resulting in multiple tables in each worksheet.  An Excel format, not a 
SAS format, is used to control the appearance of the Vital Signs: Time column, and a TITLE statement is used to 
display the patient's ID number. 
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 "Some Techniques for Integrating SAS
®
Output with Microsoft Excel 
Using Base SAS
®
". 
You cannot use the techniques described in this paper to update existing workbooks; the entire Excel document is 
created on each execution, and existing workbooks cannot be altered. 
The code in this paper was tested using SAS
®
9.3, version 1.122 of the ExcelXP tagset (shipped with 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 above, on any supported operating system (z/OS, UNIX, etc.) and 
hardware. 
Microsoft Excel 2002 or above (also referred to as Microsoft Excel XP). 
SAMPLE DATA 
The code in this paper uses the PHCVital SAS table, available in the download package of this paper.  Figure 2 and 
Figure 3 show the column definitions and representative data values, respectively.  The PROTOCOL column 
indicates whether the patient was enrolled in clinical trial "ABC 123" or "XYZ 987".  The table is sorted by the 
PROTOCOL column, then PATIENT, and then VITTIME. 
Figure 2.  Column Definitions for the PHCVital SAS Table 
.NET PDF SDK - Description of All PDF Processing Control Feastures
combine, and consolidate multiple PDF files into one regular expressions; Find required text with page co Highly configurable for searching PDF text; Available in
pdf select text; find and replace text in pdf
C# Word - Search and Find Text in Word
Load a Word File. File: Merge Word Files. File: Split Word file with various search options, like searching whole Word C# PDF: Example of Finding Text in Word.
pdf text search tool; searching pdf files for text
Figure 3.  Representative Data Values for the PHCVital SAS Table 
TECHNIQUE #1: USING THE EXPORT PROCEDURE TO CREATE CSV FILES 
The first technique for getting SAS data into Excel uses the EXPORT procedure to read the data from a SAS table 
and write it to two CSV files.  The procedure is available only for Windows and UNIX operating systems, and is 
limited to creating delimited files if only Base SAS is licensed.  The SAS/ACCESS
®
Interface to PC Files software 
must be licensed to create native Microsoft Excel workbooks (SAS Institute Inc. 2012a, 2011a). 
C# PDF insert text Library: insert text into PDF content in C#.net
a single text character and text string to PDF files using online application, such as inserting text to PDF, deleting text from PDF, searching text in PDF
pdf make text searchable; how to search pdf files for text
VB.NET PDF: Basic SDK Concept of XDoc.PDF
text processing like text writing, extracting, searching, etc., are class provides APIs for converting PDF files to other the conversion from a PDF file to a
pdf searchable text; search pdf files for text
This code creates the two CSV files: 
proc export data=sample.PHCVital(where=(protocol='ABC 123')) 
outfile='output-directory\VitalSigns-ExportABC.csv' 
dbms=csv label replace; 
run; quit; 
proc export data=sample.PHCVital(where=(protocol='XYZ 987')) 
outfile='output-directory\VitalSigns-ExportXYZ.csv' 
dbms=csv label replace; 
run; quit; 
The EXPORT procedure is run twice using the WHERE data set option because the WHERE and BY statements are 
not supported in that procedure.  The DBMS and LABEL options specify that a CSV file is created that contains 
column labels when available, instead of column names.  If the output file exists, it is overwritten because the 
REPLACE option is specified. 
CSV is a plain-text format consisting of data fields separated by commas.  Because the exported files only contain 
the data values (Figure 4), no Excel features such as formats, formulas, and colors, can be supported. 
Figure 4.  PROC EXPORT-Generated CSV File 
Because Excel cannot automatically create a multi-sheet workbook from delimited files, we must manually import the 
data from each CSV file into its own worksheet. 
Follow these steps to import the CSV files if you're using Excel 2010: 
1.  Select the Data tab, and then select Get External Data 
From Text in the Get External Data group. 
2.  In the "Import Text File" dialog, navigate to the directory that contains the CSV files, select VitalSigns-
ExportABC.csv, and then click Import to start the "Text Import Wizard". 
3.  In Step 1 of the wizard, select Delimited in the Original data type group, and then click Next >. 
4.  Select Comma in the Delimiters group and then click Next >
5.  Click Finish, choose cell A1 for the location to place the data, and then click OK to complete the import 
process. 
6.  Click an empty worksheet and repeat the steps for the "VitalSigns-ExportXYZ.csv" file. 
VB.NET PDF insert text library: insert text into PDF content in vb
add a single text character and text string to PDF files in VB such as inserting text to PDF, deleting text from PDF, searching text in PDF, extracting text
convert pdf to searchable text online; select text pdf file
How to C#: Basic SDK Concept of XDoc.PDF for .NET
text processing like text writing, extracting, searching, etc., are class provides APIs for converting PDF files to other the conversion from a PDF file to a
cannot select text in pdf file; make pdf text searchable
If you're using Excel 2007 the steps are: 
Select the Data tab, and then select From Text in the Get External Data group. 
Continue with steps 2-6 above. 
For Excel 2002-2003, use these steps: 
Select Data 
Import External Data  
Import Data... 
In the "Select Data Source" dialog, navigate to the directory containing the CSV files, select VitalSigns-
ExportABC.csv, and then click Open to start the "Text Import Wizard". 
Continue with steps 3-6 above. 
Although creating and importing CSV files can sometimes be useful, by comparing Figure 1 and Figure 5, you can 
see that the EXPORT procedure cannot be used to create the workbook that we want.  Because CSV files are limited 
to data values, PROC EXPORT is limited to exporting only data values to Excel. 
Figure 5.  Excel Workbook Generated Using PROC EXPORT and Manually Importing the CSV Files 
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. 
C# TIFF: How to Convert TIFF File to PDF Document in C# Project
end users who are searching for both single and batch image and document file conversion solutions for C#.NET application. Our C# TIFF to PDF Conversion SDK
pdf search and replace text; search pdf files for text programmatically
XDoc.HTML5 Viewer for .NET, All Mature Features Introductions
to search text-based documents, like PDF, Microsoft Office methods are offered, like searching content via supported document and image files using signatures.
text searchable pdf file; how to select text in pdf
After the file is saved in a native Excel format, you can use Excel to add features such as formats, formulas, colors, or 
any other feature supported by Excel. 
OUTPUT DELIVERY SYSTEM (ODS) BASICS 
The Output Delivery System is capable of creating files that can be opened by Excel, and is used in the next two 
techniques.  ODS is the part of Base SAS 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 all aspects of the appearance of the output, and Base SAS ships with more than 50 different styles.   
The general format for using ODS is: 
ods destination-name file='file-name.ext' style=style-name ... ; 
 Your SAS procedure code here; 
ods destination-name close; 
The ODS statements needed to generate HTML output from your procedure code using the Printer style are: 
 ods _all_ close; 
 ods html file='file-name.htm' style=Printer; 
 Your SAS procedure code here; 
 ods html close; 
The first ODS statement (
) closes all destinations that are open, because we want to generate only HTML output. 
The second ODS statement (
) uses the HTML destination to generate the HTML output and then store the output in 
a file.  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 HTML destination and releases the HTML file so that it can be opened with a 
Web browser or another application. 
You create other types of output by changing the destination name in the second (
) and third (
) ODS statements. 
TECHNIQUE #2: USING THE ODS CSVALL DESTINATION TO CREATE CSV FILES 
We can use the ODS CSVALL destination and the PRINT procedure to export the PHCVital table to CSV files 
"VitalSigns-ODSABC.csv" and "VitalSigns-ODSXYZ.csv".  We use #BYVAL to display the current value of the 
PATIENT BY-variable in the document title, and the NOBYLINE system option prevents showing the same 
information in the document (SAS Institute Inc. 2011d). 
title 'Subject ID: #BYVAL(patient)'; 
footnote; 
options nobyline; 
ods _all_ close; 
ods csvall file='output-directory\VitalSigns-ODSABC.csv'; 
proc print data=sample.PHCVital noobs label; 
by     protocol patient; 
var    vittime vitrrate vithrate vitsysbp vitdiabp; 
pageby patient; 
where  (protocol eq 'ABC 123'); 
run; quit; 
ods csvall close; 
ods csvall file='output-directory\VitalSigns-ODSXYZ.csv'; 
proc print data=sample.PHCVital noobs label; 
by     protocol patient; 
var    vittime vitrrate vithrate vitsysbp vitdiabp; 
pageby patient; 
where  (protocol eq 'XYZ 987'); 
run; quit; 
ods csvall close; 
options byline; 
Because CSV files contain only data values, the ODS STYLE option is not used.  Figure 6 shows the result of 
manually importing the CSV files using the instructions in the "Technique #1: Using the EXPORT Procedure to Create 
CSV Files" section. 
The output displayed in Figure 6 is similar to that of Figure 1, but lacks colors and formatting.  If you want to save a 
copy of the file in a native Excel format (.xls or .xlsx), follow the instructions in the "Technique #1: Using the EXPORT 
Procedure to Create CSV Files" section.  Then you can alter the file manually to add Excel-supported features. 
Figure 6.  Excel Workbook Generated Using ODS CSVALL and Manually Importing the CSV Files 
TECHNIQUE #3: USING THE ODS EXCELXP TAGSET DESTINATION 
While the two previous techniques produced CSV files, those files don’t support the output and styling options that we 
want.  To get those styling options we need to use the ExcelXP tagset, a type of ODS destination that creates XML 
output that can be opened with Excel.  Unlike the delimited (CSV) files generated by the prior techniques, using the 
ODS ExcelXP tagset allows you to take advantage of rich Excel features, such as multiple worksheets, formats, and 
colors. 
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. 
Because the ExcelXP ODS tagset creates files that conform to the Microsoft XML Spreadsheet Specification, you can 
create multi-sheet Excel workbooks that contain 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). 
UPDATING THE EXCELXP TAGSET ON YOUR SYSTEM 
The version of the ExcelXP tagset that is shipped with Base SAS 9 is periodically revised.  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 (SAS 
Institute Inc. 2013). 
Submit this code to display the tagset version number in the SAS log: 
filename temp temp; 
ods tagsets.ExcelXP file=temp; 
ods tagsets.ExcelXP close; 
filename temp clear; 
If you're using a tagset that's more than 2 or 3 versions old, consider upgrading.  See this author's earlier paper and 
SAS Usage Note 32394 for instructions (DelGobbo 2012, SAS Institute Inc. 2008b). 
BASIC SAS CODE TO CREATE THE EXCEL WORKBOOK 
Here is the basic SAS code that creates the workbook in Figure 1: 
title 'Subject ID: #BYVAL(patient)'; 
footnote; 
ods _all_ close; 
ods tagsets.ExcelXP file='output-directory\VitalSigns-ExcelXP.xml' style=Printer; 
proc print data=sample.PHCVital noobs label; 
by     protocol patient; 
var    vittime vitrrate vithrate vitsysbp vitdiabp; 
pageby patient; 
run; quit; 
ods tagsets.ExcelXP close; 
The ExcelXP tagset generates the output, and the Printer style controls the appearance of the output.  Unlike the 
previous techniques, the PRINT procedure is run only once to create a single file ("VitalSigns-ExcelXP.xml") with data 
from both trials.  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 2013b). 
OPENING THE ODS EXCELXP OUTPUT WITH EXCEL 
Follow these steps to open the "VitalSigns-ExcelXP.xml" file: 
1.  In Excel 2002, 2003, or 2010, select File
 
Open 
In Excel 2007, select Office Button
 
Open
2.  Navigate to the "VitalSigns-ExcelXP.xml" file or type the path and file name in the File name field. 
3.  Click Open
You can also navigate to the file using Microsoft Windows Explorer, and then double-click the file to open it with 
Excel. 
Excel reads and converts the XML file to the Excel format.  After the conversion, you can perform any Excel function 
on the data.  Follow the instructions in the "Technique #1: Using the EXPORT Procedure to Create CSV Files" 
section if you want to save a copy of the file in a native Excel format (.xls or .xlsx).   
The "VitalSigns-ExcelXP.xml" file displayed in Figure 7 resembles Figure 1, but has the following differences: 
1.  Each trial-patient combination appears in its own worksheet, resulting in 250 worksheets.  Patient 
information should be grouped by trial (the PROTOCOL variable), resulting in only 2 worksheets. 
2.  Unattractive, default worksheet names are used. 
3.  Standard BY-group text (Protocol Identifier=ABC 123 Patient Identifier=1) precedes the table, instead of 
the TITLE statement text. 
4.  Not all of the data values in column A are displayed with two decimal places. 
10 
We can now change the basic SAS code to correct these problems.  The complete SAS code used to create the 
workbook in Figure 1 is listed in the section "The Final SAS Code"
Figure 7.  Initial Excel Workbook Generated Using the ODS ExcelXP Tagset 
UNDERSTANDING AND USING THE EXCELXP TAGSET OPTIONS  
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. 
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; 
Documents you may be interested
Documents you may be interested