How to Export SAS Dataset to Excel

Cody Schneider8 min read

Need to move your data out of SAS and into an Excel spreadsheet? It's a common task for sharing results with colleagues, creating a quick chart for a presentation, or just doing some ad-hoc analysis in a familiar environment. This guide will walk you through a few straightforward methods to export your SAS datasets to Excel, from simple code to point-and-click options.

GraphedGraphed

Your AI Data Analyst to Create Live Dashboards

Connect your data sources and let AI build beautiful, real-time dashboards for you in seconds.

Watch Graphed demo video

Why Export SAS Data to Excel in the First Place?

While SAS is a powerhouse for data manipulation and statistical analysis, its native environment isn't always the final destination for your data. Excel, on the other hand, is everywhere. Exporting from SAS to Excel is often driven by one of these needs:

  • [Collapse] Your boss, clients, or colleagues may not have or know how to use SAS. An Excel file is a universally accepted format for sharing tables of data.
  • [Collapse] Sometimes you just want to quickly filter, sort, or create a pivot table without writing more code. Excel's hands-on interface is perfect for this kind of exploratory work.
  • [Collapse] For creating simple bar charts or line graphs for a quick email or PowerPoint slide, Excel's charting tools are often faster than SAS’s graphing procedures for non-analysts.
  • [Collapse] Many teams have existing reporting templates built in Excel. Exporting your clean, processed data from SAS allows you to plug it directly into these templates, updating dashboards and summary reports.

Whatever your reason, getting data from one system to the other doesn't have to be complicated. Let's look at the best ways to do it.

Method 1: The Go-To Classic with PROC EXPORT

The PROC EXPORT procedure is the most direct and widely used method for getting a SAS dataset into an external file format, including Excel. It’s clean, efficient, and easy to script for repeatable tasks.

Core PROC EXPORT Syntax

At its simplest, the code requires you to specify the SAS dataset you want to export, where you want to save the Excel file, and what kind of file it is. Here’s the fundamental structure:

PROC EXPORT DATA=sas_library.dataset_name
    OUTFILE="C:\path\to\your\filename.xlsx"
    DBMS=XLSX
    REPLACE,
RUN,

Breaking Down the Code

Let's look at what each piece of that statement does:

  • <strong>DATA=sas_library.dataset_name</strong>: This points to the dataset you want to export. sas_library is the SAS library where your data is stored (like WORK), and dataset_name is the name of your dataset.
  • <strong>OUTFILE="C:\path\to\your\filename.xlsx"</strong>: This is the full path, including the filename and extension, where you want to save your new Excel file. Always use the full path to avoid ambiguity about where SAS is saving the file. Use the .xlsx extension for modern Excel workbooks.
  • <strong>DBMS=XLSX</strong>: DBMS stands for Database Management System. This tells SAS what kind of file you're creating. For modern Excel files use XLSX. If you need to support very old versions of Excel (pre-2007), you could use EXCEL (for .xls), but XLSX is the modern standard.
  • <strong>REPLACE</strong>: This is an optional but very useful statement. If a file with the same name already exists at your specified location, REPLACE tells SAS to overwrite it. Without this, SAS will produce an error if the file already exists, which can be frustrating when you're re-running a script.

Free PDF Guide

AI for Data Analysis Crash Course

Learn how to get AI to do data analysis for you — the best tools, prompts, and workflows to go from raw data to insights without writing a single line of code.

A Practical Example

Imagine you have a dataset in your work library called quarterly_sales that you need to send to your manager. The code would look like this:

/* First, create some sample data for demonstration */
DATA work.quarterly_sales,
    INPUT region $ product $ sales,
    DATALINES,
North Alpha 15000
North Bravo 22000
South Alpha 18000
South Charlie 11500
West Bravo 31000
West Alpha 19500
,
RUN,

/* Now, export the dataset to an Excel file */
PROC EXPORT DATA=work.quarterly_sales
    OUTFILE="C:\Users\YourName\Documents\Reports\Q1_Sales_Report.xlsx"
    DBMS=XLSX
    REPLACE,
    SHEET="Sales Data",
RUN,

After running this code, you’ll find a file named Q1_Sales_Report.xlsx in your Documents\Reports folder. Inside, the data will be on a worksheet named "Sales Data."

Method 2: Enhanced Control with the Output Delivery System (ODS)

SAS ODS is an incredibly versatile system for creating customized report outputs. While PROC EXPORT is great for dumping a single raw dataset, ODS gives you more control over formatting, titles, and even allows you to export the output of multiple procedures into different worksheets of the same Excel file.

You essentially "wrap" your regular SAS procedures (PROC PRINT, PROC FREQ, PROC REPORT, etc.) with ODS statements to send their output to an Excel file instead of the standard SAS output window.

Core ODS EXCEL Syntax

The structure involves opening the ODS destination, running your procedures, and then closing the destination:

/* 1. Open the ODS EXCEL Destination */
ODS EXCEL FILE="C:\path\to\your\filename.xlsx" OPTIONS(SHEET_NAME="Summary"),

/* 2. Run your SAS procedures - their output goes to the Excel file */
PROC PRINT DATA=work.quarterly_sales,
    TITLE "Detailed Quarterly Sales Data",
RUN,

PROC MEANS DATA=work.quarterly_sales,
    TITLE "Sales Statistics",
    VAR sales,
    CLASS region,
RUN,

/* 3. Close the ODS Destination */
ODS EXCEL CLOSE,
GraphedGraphed

Your AI Data Analyst to Create Live Dashboards

Connect your data sources and let AI build beautiful, real-time dashboards for you in seconds.

Watch Graphed demo video

ODS Example with Multiple Worksheets

The real power of ODS comes from creating multi-worksheet reports. You can change options like SHEET_NAME between procedures.

ODS EXCEL FILE="C:\Users\YourName\Documents\Reports\MultiSheet_Report.xlsx",

/* ----- First worksheet: Detailed Data ----- */
ODS EXCEL OPTIONS(SHEET_NAME="Detail View"),

PROC PRINT DATA=work.quarterly_sales,
    TITLE "Raw Sales Data by Region",
RUN,

/* ----- Second worksheet: Summary by Region ----- */
ODS EXCEL OPTIONS(SHEET_NAME="Region Summary"),

PROC MEANS DATA=work.quarterly_sales MEAN SUM,
    CLASS region,
    VAR sales,
    TITLE "Sales Totals and Averages by Region",
RUN,

ODS EXCEL CLOSE,

This script produces a single Excel workbook named MultiSheet_Report.xlsx. It contains two worksheets: one named "Detail View" with the raw data from PROC PRINT, and another named "Region Summary" with the aggregate statistics from PROC MEANS.

Method 3: The Point-and-Click Way in a SAS GUI

If you're not a fan of writing code or just need a quick, one-off export, GUI-based SAS interfaces like SAS Studio or SAS Enterprise Guide make this process as easy as right-clicking.

Exporting from SAS Studio

  1. On the left panel, navigate to the Libraries section and find the library containing your dataset (e.g., WORK).
  2. Locate your dataset (e.g., QUARTERLY_SALES) in the list.
  3. Right-click on the dataset.
  4. From the context menu, select Export.
  5. A new window or pane will appear. Click the button to select a save location on your computer.
  6. In the "Save As" dialogue, choose your folder, give the file a name, and make sure the "Save as type" dropdown is set to Excel Workbook (*.xlsx).
  7. Click Save. SAS Studio will generate and run the necessary PROC EXPORT code for you behind the scenes.

This method is fantastic for beginners or for anyone who needs to quickly pull data without remembering the exact syntax.

Best Practices and Quick Tips

As you get comfortable exporting data, keep these tips in mind to avoid common pitfalls.

Handle Large Datasets Gracefully

Trying to export a dataset with millions of rows can be slow and result in a massive Excel file. If you only need a portion of the data, filter it first. You can use the WHERE statement to export only the rows you need.

/* Only export sales data for the 'North' region */
PROC EXPORT DATA=work.quarterly_sales
    OUTFILE="C:\Users\YourName\Documents\Reports\North_Region_Report.xlsx"
    DBMS=XLSX
    REPLACE,
    WHERE region='North',
RUN,

Free PDF Guide

AI for Data Analysis Crash Course

Learn how to get AI to do data analysis for you — the best tools, prompts, and workflows to go from raw data to insights without writing a single line of code.

Be Mindful of Formats

SAS stores dates and datetimes as numbers, and it uses formats to display them in a human-readable way (like MMDDYY10.). When you export to Excel, SAS sends the raw numeric value. Excel is usually smart enough to interpret this correctly, but if you run into formatting issues, you may need to apply a date format in Excel after the export.

Automate Your Reporting

The beauty of the code-based methods (PROC EXPORT and ODS) is that they are repeatable. If you perform the same export every Monday morning, save the script. This saves you from having to point-and-click every week and ensures consistency in your output files.

Final Thoughts

Moving data from a powerful analytical tool like SAS to a widespread application like Excel is a fundamental skill for any data analyst. Using PROC EXPORT is your most reliable workhorse for direct data exports, while the ODS system offers powerful reporting features for creating polished, multi-sheet documents. And when you just need the data now, the GUI options have you covered.

This whole process of exporting data into spreadsheets often comes from the need to make complex data accessible to everyone on the team. We ran into this bottleneck constantly - hours spent exporting CSVs and wrestling with pivot tables just to share basic insights. That’s why we built Graphed. Instead of a multi-step export process, we let you connect data sources directly and create live, shareable dashboards just by describing what you want to see in plain English, eliminating the manual steps in between.

Related Articles