Reading multiple sheets of excel file

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Reading multiple sheets of excel file

Valerie Seagroatt
I have an excel file which contains multiple worksheets - one for each year 1970-2008 - and would like to read each of these sheets and store as one data file. The data within each of the worksheets is in the same format. As it does not have a separate variable for the year so would also like to add a variable with value equal to the worksheet name. I could read each worksheet separately, compute the new variable, save the file and then add all the files eg

GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '70m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '70m'.
save outfile = t70m.

GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '71m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '71m'.
save outfile = t71m.
etc ...

get file = t70m.
add files file = * / file = t71m  ... etc


This is a bit tedious and I was hoping that I could automate the procedure in some way. Any suggestions would be greatly appreciated.

Thanks

Valerie

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: Reading multiple sheets of excel file

Albert-Jan Roskam
Hi,

The python code below generates spss syntax that will do what you want. I also pasted the generated spss syntax below.

BEGIN PROGRAM.
import spss
getcmds = ""
getcmd = """GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '%02dm'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '%02dm'.
exe.
dataset name data_%02d.\n"""
addcmd = "add files "
restcmd = """
exe.
dataset close all.
save outfile = 'd:/result.sav'.
"""

for year in range(1970, 2008+1):
    y = year % 100
    getcmds += getcmd % (y, y, y)
    addcmd += "\n  /file = data_%02d" % y
spss.Submit(getcmd + addcmd + "." + restcmd)
END PROGRAM.


Cheers!!
Albert-Jan

** Generated code:.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '70m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '70m'.
exe.
dataset name data_70.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '71m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '71m'.
exe.
dataset name data_71.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '72m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '72m'.
exe.
dataset name data_72.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '73m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '73m'.
exe.
dataset name data_73.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '74m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '74m'.
exe.
dataset name data_74.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '75m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '75m'.
exe.
dataset name data_75.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '76m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '76m'.
exe.
dataset name data_76.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '77m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '77m'.
exe.
dataset name data_77.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '78m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '78m'.
exe.
dataset name data_78.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '79m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '79m'.
exe.
dataset name data_79.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '80m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '80m'.
exe.
dataset name data_80.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '81m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '81m'.
exe.
dataset name data_81.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '82m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '82m'.
exe.
dataset name data_82.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '83m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '83m'.
exe.
dataset name data_83.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '84m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '84m'.
exe.
dataset name data_84.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '85m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '85m'.
exe.
dataset name data_85.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '86m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '86m'.
exe.
dataset name data_86.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '87m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '87m'.
exe.
dataset name data_87.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '88m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '88m'.
exe.
dataset name data_88.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '89m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '89m'.
exe.
dataset name data_89.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '90m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '90m'.
exe.
dataset name data_90.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '91m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '91m'.
exe.
dataset name data_91.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '92m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '92m'.
exe.
dataset name data_92.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '93m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '93m'.
exe.
dataset name data_93.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '94m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '94m'.
exe.
dataset name data_94.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '95m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '95m'.
exe.
dataset name data_95.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '96m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '96m'.
exe.
dataset name data_96.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '97m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '97m'.
exe.
dataset name data_97.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '98m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '98m'.
exe.
dataset name data_98.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '99m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '99m'.
exe.
dataset name data_99.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '00m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '00m'.
exe.
dataset name data_00.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '01m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '01m'.
exe.
dataset name data_01.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '02m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '02m'.
exe.
dataset name data_02.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '03m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '03m'.
exe.
dataset name data_03.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '04m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '04m'.
exe.
dataset name data_04.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '05m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '05m'.
exe.
dataset name data_05.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '06m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '06m'.
exe.
dataset name data_06.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '07m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '07m'.
exe.
dataset name data_07.
GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '08m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '08m'.
exe.
dataset name data_08.
add files
  /file = data_70
  /file = data_71
  /file = data_72
  /file = data_73
  /file = data_74
  /file = data_75
  /file = data_76
  /file = data_77
  /file = data_78
  /file = data_79
  /file = data_80
  /file = data_81
  /file = data_82
  /file = data_83
  /file = data_84
  /file = data_85
  /file = data_86
  /file = data_87
  /file = data_88
  /file = data_89
  /file = data_90
  /file = data_91
  /file = data_92
  /file = data_93
  /file = data_94
  /file = data_95
  /file = data_96
  /file = data_97
  /file = data_98
  /file = data_99
  /file = data_00
  /file = data_01
  /file = data_02
  /file = data_03
  /file = data_04
  /file = data_05
  /file = data_06
  /file = data_07
  /file = data_08.
exe.
dataset close all.
save outfile = 'd:/result.sav'.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All right, but apart from the sanitation, the medicine, education, wine, public order, irrigation, roads, a fresh water system, and public health, what have the Romans ever done for us?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--- On Sat, 5/29/10, Valerie Seagroatt <[hidden email]> wrote:

From: Valerie Seagroatt <[hidden email]>
Subject: [SPSSX-L] Reading multiple sheets of excel file
To: [hidden email]
Date: Saturday, May 29, 2010, 3:39 PM

I have an excel file which contains multiple worksheets - one for each year 1970-2008 - and would like to read each of these sheets and store as one data file. The data within each of the worksheets is in the same format. As it does not have a separate variable for the year so would also like to add a variable with value equal to the worksheet name. I could read each worksheet separately, compute the new variable, save the file and then add all the files eg

GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '70m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '70m'.
save outfile = t70m.

GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '71m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '71m'.
save outfile = t71m.
etc ...

get file = t70m.
add files file = * / file = t71m  ... etc


This is a bit tedious and I was hoping that I could automate the procedure in some way. Any suggestions would be greatly appreciated.

Thanks

Valerie

=====================
To manage your subscription to SPSSX-L, send a message to
LISTSERV@... (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD

Reply | Threaded
Open this post in threaded view
|

Re: Reading multiple sheets of excel file

Bruce Weaver
Administrator
In reply to this post by Valerie Seagroatt
It seems to me you should be able to do this with a good old-fashioned macro.  Something like this (untested):

define !myget ( slist !cmdend )

!do !sheet !in (!slist)

!let !sname = !quote( !concat(!sheet,'m') )
!let !dsname = !concat('data_',!sheet)

GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name !sname
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = !sname .
exe.
dataset name !dsname .

!doend

!enddefine .

When calling it, you hand it your list of worksheet numbers in string format -- e.g., '70' '71' ... '08'.  After reading in all the sheets, merge them via ADD FILES, as shown in Albert-Jan's response.



Valerie Seagroatt wrote
I have an excel file which contains multiple worksheets - one for each year 1970-2008 - and would like to read each of these sheets and store as one data file. The data within each of the worksheets is in the same format. As it does not have a separate variable for the year so would also like to add a variable with value equal to the worksheet name. I could read each worksheet separately, compute the new variable, save the file and then add all the files eg

GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '70m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '70m'.
save outfile = t70m.

GET DATA /TYPE=XLS
   /FILE='C:\data_70-08.xls'
   /SHEET=name '71m'
   /CELLRANGE=range 'A3:E115'
   /READNAMES=on
   /ASSUMEDSTRWIDTH=32767.
string name (a4).
compute name = '71m'.
save outfile = t71m.
etc ...

get file = t70m.
add files file = * / file = t71m  ... etc


This is a bit tedious and I was hoping that I could automate the procedure in some way. Any suggestions would be greatly appreciated.

Thanks

Valerie

=====================
To manage your subscription to SPSSX-L, send a message to
LISTSERV@LISTSERV.UGA.EDU (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
--
Bruce Weaver
bweaver@lakeheadu.ca
http://sites.google.com/a/lakeheadu.ca/bweaver/

"When all else fails, RTFM."

PLEASE NOTE THE FOLLOWING: 
1. My Hotmail account is not monitored regularly. To send me an e-mail, please use the address shown above.
2. The SPSSX Discussion forum on Nabble is no longer linked to the SPSSX-L listserv administered by UGA (https://listserv.uga.edu/).
Reply | Threaded
Open this post in threaded view
|

Re: Reading multiple sheets of excel file

Ruben Geert van den Berg
Although nothing beats Python, I wrote a very ugly one for my colleague that does the add files command as well. I just put the macro arguments in the body which was just a matter of laziness. I find this syntax rather tricky (the dataset name trick generates warnings) but the bottom line: it created the desired dataset. Since a number of string variables had differing lengths over sheets, I was very grateful that 'alter type' was introduced in v16 because the previous version (written for v14) was even clumsier.
 
define !Ester()
!do !l1=1 !to 12
get data
/type=xls
/file='NIPOBase Business_en _Consumer_respons 2009.xls'
/sheet=index !l1
/readnames=on.
compute month =!l1.
alter type Veldwerknr Omschrijving Projectleider Steekproefbron(a1000).
!if (!l1=1) !then
dataset name d1.
!else
add files file *
/file d1.
execute.
!ifend
dataset close all.
dataset name d1.
!doend
alter type Veldwerknr Omschrijving Projectleider Steekproefbron(amin).
!enddefine.


Ruben van den Berg
Consultant Models & Methods
TNS NIPO
Email: [hidden email]
Mobiel: +31 6 24641435
Telefoon: +31 20 522 5738
Internet: www.tns-nipo.com



 

> Date: Mon, 31 May 2010 04:45:23 -0700
> From: [hidden email]
> Subject: Re: Reading multiple sheets of excel file
> To: [hidden email]
>
> It seems to me you should be able to do this with a good old-fashioned macro.
> Something like this (untested):
>
> define !myget ( slist !cmdend )
>
> !do !sheet !in (!slist)
>
> !let !sname = !quote( !concat(!sheet,'m') )
> !let !dsname = !concat('data_',!sheet)
>
> GET DATA /TYPE=XLS
> /FILE='C:\data_70-08.xls'
> /SHEET=name !sname
> /CELLRANGE=range 'A3:E115'
> /READNAMES=on
> /ASSUMEDSTRWIDTH=32767.
> string name (a4).
> compute name = !sname .
> exe.
> dataset name !dsname .
>
> !doend
>
> !enddefine .
>
> When calling it, you hand it your list of worksheet numbers in string format
> -- e.g., '70' '71' ... '08'. After reading in all the sheets, merge them
> via ADD FILES, as shown in Albert-Jan's response.
>
>
>
>
> Valerie Seagroatt wrote:
> >
> > I have an excel file which contains multiple worksheets - one for each
> > year 1970-2008 - and would like to read each of these sheets and store as
> > one data file. The data within each of the worksheets is in the same
> > format. As it does not have a separate variable for the year so would also
> > like to add a variable with value equal to the worksheet name. I could
> > read each worksheet separately, compute the new variable, save the file
> > and then add all the files eg
> >
> > GET DATA /TYPE=XLS
> > /FILE='C:\data_70-08.xls'
> > /SHEET=name '70m'
> > /CELLRANGE=range 'A3:E115'
> > /READNAMES=on
> > /ASSUMEDSTRWIDTH=32767.
> > string name (a4).
> > compute name = '70m'.
> > save outfile = t70m.
> >
> > GET DATA /TYPE=XLS
> > /FILE='C:\data_70-08.xls'
> > /SHEET=name '71m'
> > /CELLRANGE=range 'A3:E115'
> > /READNAMES=on
> > /ASSUMEDSTRWIDTH=32767.
> > string name (a4).
> > compute name = '71m'.
> > save outfile = t71m.
> > etc ...
> >
> > get file = t70m.
> > add files file = * / file = t71m ... etc
> >
> >
> > This is a bit tedious and I was hoping that I could automate the procedure
> > in some way. Any suggestions would be greatly appreciated.
> >
> > Thanks
> >
> > Valerie
> >
> > =====================
> > To manage your subscription to SPSSX-L, send a message to
> > [hidden email] (not to SPSSX-L), with no body text except the
> > command. To leave the list, send the command
> > SIGNOFF SPSSX-L
> > For a list of commands to manage subscriptions, send the command
> > INFO REFCARD
> >
> >
>
>
> -----
> --
> Bruce Weaver
> [hidden email]
> http://sites.google.com/a/lakeheadu.ca/bweaver/
> "When all else fails, RTFM."
>
> NOTE: My Hotmail account is not monitored regularly.
> To send me an e-mail, please use the address shown above.
> --
> View this message in context: http://old.nabble.com/Reading-multiple-sheets-of-excel-file-tp28716025p28730119.html
> Sent from the SPSSX Discussion mailing list archive at Nabble.com.
>
> =====================
> To manage your subscription to SPSSX-L, send a message to
> [hidden email] (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD


New Windows 7: Simplify what you do everyday. Find the right PC for you.