I like the method used here.
with some tweeking you could get 3 spreadsheets.
You need 2003.
To create an xlst just create the spreadsheet you want and save it as XML. Use the example in the above artical to alter your xml spreadsheet to perform the looping you need
NOTE This artical is out of date. Here is the code I use.
note one more thing.
''''''''''''''''''''''''
Public reconDataset As DataSet
Public CurrentAppLocation As String
Public ServerName As String
Public emailAddress As String
Public fileName As String
''''''''''''''''''''''''
Dim tw As XmlTextWriter
Dim tr As XmlResolver
Dim u As New Maxim.Mips.Utility.utility()
Dim xmlDoc As XmlDataDocument = New XmlDataDocument(reconDataset)
Dim xslTran As XslTransform = New XslTransform()
xslTran.Load(CurrentAppLocation & "\" & "ReconExcel.xslt"
tw = New XmlTextWriter(CurrentAppLocation & "ReconReport\" & fileName, System.Text.Encoding.UTF8)
tw.Formatting = Formatting.Indented
tw.Indentation = 3
tw.WriteStartDocument()
xslTran.Transform(xmlDoc, Nothing, tw, Nothing)
tw.Close()
'this part is for changing the version to 2000 so other people can view then
Dim oXL As New Excel.Application
Dim f As Excel.XlFileFormat
oXL.Visible = False
oXL.Workbooks.Open(CurrentAppLocation & "ReconReport\" & fileName)
oXL.Workbooks(1).SaveAs(CurrentAppLocation & "ReconReport\Recon" & fileName, f.xlWorkbookNormal)
oXL.Workbooks(1).Close()
oXL.Quit()
f = Nothing
oXL = Nothing
GC.Collect()
System.IO.File.Delete(CurrentAppLocation & "ReconReport\" & fileName)
Good luck.