different approaches to maintaining excel reports

29
Different A to Maintaining Presented by: Am ING Toronto Area SAS Socie Approaches g Excel Reports manda Bin Feng G Direct Canada ety, December 11, 2009

Upload: others

Post on 07-Dec-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Different Approaches to Maintaining Excel Reports

Different Approaches to Maintaining Excel Reports

Presented by: Amanda Bin Feng ING Direct Canada

Toronto Area SAS Society, December 11, 2009

Different Approaches Maintaining Excel Reports

Presented by: Amanda Bin Feng ING Direct Canada

Toronto Area SAS Society, December 11, 2009

Page 2: Different Approaches to Maintaining Excel Reports

Objective

When we need to maintain routine reports, we would like to:

• Populate SAS data into formatted Excel spreadsheets as Excel reports are

2

• easy to design • easy to format • easy to use and share

• Automate the routine update process as much as possible

When we need to maintain routine

formatted Excel spreadsheets

2

Automate the routine update process as much as possible

Page 3: Different Approaches to Maintaining Excel Reports

Outline

•Solution 1 : Update Excel reports through links to other data sources.

•Solution 2: Update Excel reports via

3

•Solution 2: Update Excel reports via Dynamic Data Exchange (DDE).

•Solution 3: Update Excel reports by calling Excel Macros

Solution 1 : Update Excel reports through links to other data sources.

Solution 2: Update Excel reports via

3

Solution 2: Update Excel reports via Dynamic Data Exchange (DDE).

Solution 3: Update Excel reports by calling

Page 4: Different Approaches to Maintaining Excel Reports

Solution 1 – Update Reports Through Excel Links

Procedure • Create a formatted Excel spreadsheet

• Populate SAS dataset

4

• Export SAS data to a new Excel worksheet

• Build links between the formatted Excel spreadsheet and the data sheet

Update Reports Through Excel Links

Create a formatted Excel spreadsheet

4

Export SAS data to a new Excel worksheet

Build links between the formatted Excel spreadsheet and the data sheet

Page 5: Different Approaches to Maintaining Excel Reports

• Create a formatted Excel spreadsheet

Solution 1 – Update Reports Through Excel Links

5

Create a formatted Excel spreadsheet

Update Reports Through Excel Links

5

Page 6: Different Approaches to Maintaining Excel Reports

Solution 1 – Update Reports Through Excel Links

• Populate SAS dataset

6

Update Reports Through Excel Links

6

Page 7: Different Approaches to Maintaining Excel Reports

Solution 1 – Update Reports Through Excel Links

• Export SAS data to an Excel sheet PROC EXPORT DATA=REGION DBMS=EXCEL OUTFILE="My Documents\Weekly Sales Report" REPLACE; SHEET="DATA_SOURCE"; RUN;

7

Update Reports Through Excel Links

Export SAS data to an Excel sheet DATA=REGION DBMS=EXCEL

Weekly Sales Report" REPLACE;

7

Page 8: Different Approaches to Maintaining Excel Reports

Solution 1 – Update Reports Through Excel Links

• Build links between the formatted Excel spreadsheet and the data sheet

8

Update Reports Through Excel Links

Build links between the formatted Excel spreadsheet and the data sheet

8

Page 9: Different Approaches to Maintaining Excel Reports

Solution 1 – Update Reports Through Excel Links

• Once we set up the links, the routine work is updated with the “Data_Source” worksheet by Proc Export.

9

Update Reports Through Excel Links

Once we set up the links, the routine work is updated with the “Data_Source” worksheet by

9

Page 10: Different Approaches to Maintaining Excel Reports

• Strengths: • It minimizes SAS coding. • It’s easy to use.

• Weaknesses:

Solution 1 – Update Reports Through Excel Links

10

• Weaknesses: • Building links for a massive report might be a tedious task

• End users are not able to copy the report data for other purposes since the data in the report sheet are just images of the original Data Source.

• End users might get distracted by Data Source sheets

Update Reports Through Excel Links

10

Building links for a massive report might be a tedious

End users are not able to copy the report data for other purposes since the data in the report sheet are just images of the original Data Source. End users might get distracted by Data Source sheets

Page 11: Different Approaches to Maintaining Excel Reports

• Tips:

• Keep Report sheets and Data Source sheets in one Excel file so that the report can be distributed

Solution 1 – Update Reports Through Excel Links

11

• Focus users’ attention on the report sheets by hiding sheet tabs.

Data Source sheets in one Excel file so that the report

Update Reports Through Excel Links

11

the report sheets by hiding

Page 12: Different Approaches to Maintaining Excel Reports

Solution 2 – Update Reports Via DDE

Procedure • Create a formatted Excel spreadsheet

• Populate SAS dataset

12

• Connect SAS with Excel and export data to formatted Excel report file directly

Update Reports Via DDE

Create a formatted Excel spreadsheet

12

Connect SAS with Excel and export data to formatted Excel report file directly

Page 13: Different Approaches to Maintaining Excel Reports

• Create a formatted Excel spreadsheet

Solution 2 – Update Reports Via DDE

13

• Populate SAS dataset

Update Reports Via DDE

13

Page 14: Different Approaches to Maintaining Excel Reports

• Connect SAS with Excel. /***************************************************************** *** Open Excel application. *****************************************************************/ OPTIONS NOXSYNC NOXWAIT; X " 'C:\Program Files\Microsoft Office\OFFICE11 /***************************************************************** *** Suspend SAS for 5 seconds to allow Excel to be fully started. *****************************************************************/ DATA _NULL_;

Solution 2 – Update Reports Via DDE

14

DATA _NULL_; RC=SLEEP (5); RUN; /***************************************************************** *** Open the Report Template. *****************************************************************/ FILENAME OPEN DDE "EXCEL|SYSTEM" notab; data _null_; FILE OPEN ; PUT '[close("Book1")]'; PUT '[open("C:\Documents and Settings\AFENG run;

Connect SAS with Excel. /*****************************************************************

*****************************************************************/

OFFICE11\excel.exe'"; /***************************************************************** *** Suspend SAS for 5 seconds to allow Excel to be fully started. *****************************************************************/

Update Reports Via DDE

14

/*****************************************************************

*****************************************************************/ FILENAME OPEN DDE "EXCEL|SYSTEM" notab;

AFENG\My Documents\Weekly Sales Report.xls")]';

Page 15: Different Approaches to Maintaining Excel Reports

• Export SAS data to the Excel report.

/***************************************************************** *** Fill data directly into the Excel report . *****************************************************************/ FILENAME REPORT DDE 'EXCEL|REPORT!R9C4:R13C9 DATA _NULL_;

Solution 2 – Update Reports Via DDE

15

DATA _NULL_; SET REGION; FILE REPORT; PUT WEEK WEEK_PER MTD MTD_PER YTD YTD_PER;

RUN;

Export SAS data to the Excel report.

/*****************************************************************

*****************************************************************/ R9C4:R13C9';

Update Reports Via DDE

15

PUT WEEK WEEK_PER MTD MTD_PER YTD YTD_PER;

Page 16: Different Approaches to Maintaining Excel Reports

• Export SAS data to the Excel report. /***************************************************************** *** Save the Excel Report and close Excel. *****************************************************************/

data _null_; FILE OPEN ; PUT "[Save()]";

Solution 2 – Update Reports Via DDE

16

PUT "[Save()]"; PUT '[FILE.CLOSE(FALSE)]'; PUT '[QUIT()]'; RUN;

FILENAME OPEN CLEAR; FILENAME REPORT CLEAR;

DATA _NULL_; RC=SLEEP (5); RUN;

Export SAS data to the Excel report. /*****************************************************************

*****************************************************************/

Update Reports Via DDE

16

Page 17: Different Approaches to Maintaining Excel Reports

• Strengths: • SAS can operate Excel directly • SAS through DDE can do (almost) anything • Export data • Format data

Solution 2 – Update Reports Via DDE

17

• Build formulas

• Weaknesses: • Needs a lot of hard coding • Difficult to use

• Excel areas have to be addressed in code by columns and rows

SAS can operate Excel directly

Update Reports Via DDE

17

Excel areas have to be addressed

Page 18: Different Approaches to Maintaining Excel Reports

• Tips:

Please refer TASS presentation by Nathaniel Derby on June 13,08 Populating Excel: The DDE Way

Solution 2 – Update Reports Via DDE

18

Please refer TASS presentation by Nathaniel Derby on June 13,08 Populating Excel: The DDE Way ­ Nathaniel Derby

Update Reports Via DDE

18

Page 19: Different Approaches to Maintaining Excel Reports

Solution 3 – Update Reports by Calling Excel Macros

• Procedure • Create a formatted Excel spreadsheet

• Populate SAS dataset and export to an Excel data source file

19

• Create Excel Macros to update the formatted Excel spreadsheet by copying data from the data source file

• Connect SAS with Excel and call Excel Macros to update Excel reports

Update Reports by Calling Excel Macros

Create a formatted Excel spreadsheet

Populate SAS dataset and export to an Excel data

19

Create Excel Macros to update the formatted Excel spreadsheet by copying data from the data source

Connect SAS with Excel and call Excel Macros to

Page 20: Different Approaches to Maintaining Excel Reports

• Create a formatted Excel spreadsheet.

• Populate SAS dataset and export to a new Excel data source file.

Solution 3 – Update Reports by Calling Excel Macros

20

Excel data source file.

PROC EXPORT DATA=REGION DBMS=EXCEL

OUTFILE="My Documents\Weekly Sales Update" REPLACE;

SHEET="DATA_SOURCE"; RUN;

Update Reports by Calling Excel Macros

20

Page 21: Different Approaches to Maintaining Excel Reports

• Create Excel Macros to update the formatted Excel spreadsheet by copying data from the data source file

Solution 3 – Update Reports by Calling Excel Macros

21

Create Excel Macros to update the formatted Excel spreadsheet by copying data from the data

Update Reports by Calling Excel Macros

21

Page 22: Different Approaches to Maintaining Excel Reports

• Connect SAS with Excel

/***************************************************************** *** Open Excel application. *****************************************************************/ OPTIONS NOXSYNC NOXWAIT; X " 'C:\Program Files\Microsoft Office\OFFICE11\excel.exe'";

/*****************************************************************

Solution 3 – Update Reports by Calling Excel Macros

22

/***************************************************************** *** Suspend SAS for 5 seconds to allow Excel to be fully started. *****************************************************************/ DATA _NULL_; RC=SLEEP (5); RUN;

FILENAME OPEN DDE "EXCEL|SYSTEM" notab;

data _null_; FILE OPEN ; PUT '[close("Book1")]'; PUT '[open("C:\Documents and Settings\AFENG\My Documents run;

/*****************************************************************

*****************************************************************/

excel.exe'";

/*****************************************************************

Update Reports by Calling Excel Macros

22

/***************************************************************** *** Suspend SAS for 5 seconds to allow Excel to be fully started. *****************************************************************/

My Documents\Weekly Sales Report.xls")]';

Page 23: Different Approaches to Maintaining Excel Reports

• Call Excel Macros to update Excel Report

/*********************************************************************/ /* Execute the macro */ /*********************************************************************/ data _null_; FILE OPEN; PUT '[RUN("REPORTUPDATE")]'; PUT "[Save()]";

Solution 3 – Update Reports by Calling Excel Macros

23

PUT "[Save()]"; PUT '[FILE.CLOSE(FALSE)]'; PUT '[QUIT()]'; RUN;

/*********************************************************************/ /* Clean up the filerefs */ /*********************************************************************/ FILENAME OPEN CLEAR;

DATA _NULL_; RC=SLEEP (5); RUN;

Call Excel Macros to update Excel Report

/*********************************************************************/

/*********************************************************************/

Update Reports by Calling Excel Macros

23

/*********************************************************************/

/*********************************************************************/

Page 24: Different Approaches to Maintaining Excel Reports

• Strength: • Can handle massive and complex reports !

Solution 3 – Update Reports by Calling Excel Macros

24

Can handle massive and complex reports !

Update Reports by Calling Excel Macros

24

Page 25: Different Approaches to Maintaining Excel Reports

• Strengths: • SAS will operate Excel directly • It’s FUN to watch the update process

Solution 3 – Update Reports by Calling Excel Macros

25

SAS will operate Excel directly It’s FUN to watch the update process

Update Reports by Calling Excel Macros

25

Page 26: Different Approaches to Maintaining Excel Reports

• Weakness: • Need to learn how to record Excel Macros (This is not difficult at all! You don’t need to know how to do VBA coding before you can record Excel Macros)

Solution 3 – Update Reports by Calling Excel Macros

26

record Excel Macros)

Need to learn how to record Excel Macros (This is not difficult at all! You don’t need to know how to do VBA coding before you can

Update Reports by Calling Excel Macros

26

Page 27: Different Approaches to Maintaining Excel Reports

• Tips: • Keep Report spreadsheets and Data Source sheets in different Excel files.

• Set Security Level from Medium (by default) to Low to suppress the Excel Macro warning

Solution 3 – Update Reports by Calling Excel Macros

27

Keep Report spreadsheets and Data Source sheets in

Set Security Level from Medium (by default) to Low to suppress the Excel Macro warning

Update Reports by Calling Excel Macros

27

Page 28: Different Approaches to Maintaining Excel Reports

Outline

•Solution 1 : Update Excel reports through links to other data sources.

•Solution 2: Update Excel reports via

28

•Solution 2: Update Excel reports via Dynamic Data Exchange (DDE).

•Solution 3: Update Excel reports by calling Excel Macros

Solution 1 : Update Excel reports through links to other data sources.

Solution 2: Update Excel reports via

28

Solution 2: Update Excel reports via Dynamic Data Exchange (DDE).

Solution 3: Update Excel reports by calling

Page 29: Different Approaches to Maintaining Excel Reports

• Acknowledgements • Special thanks to Peter Eberhardt , Darryl Prebble and Rupinder Dhillon for taking precious time to review this presentation.

• SAS is a Registered Trademark of the SAS Institute, Inc. of Cary, North Carolina

Acknowledgements & Contact Information

29

• Microsoft Excel is a Registered Trademark of the Microsoft Corporation

• Contact Information Work Phone: 416­758­5202

Email: [email protected]

Special thanks to Peter Eberhardt , Darryl Prebble and Rupinder Dhillon for taking precious time to review this presentation.

SAS is a Registered Trademark of the SAS Institute, Inc. of Cary, North

Acknowledgements & Contact Information

29

Microsoft Excel is a Registered Trademark of the Microsoft Corporation