YAPS: Random acts of kindness regarding Reports, Excel, XSLT, and you

by Lisa Nicholls Sun, February 08 2009 00:34

You've provided some gratifying responses to my unintended continuing series on using custom XSLT to derive better Excel  or other formats for your reports than the standard stuff  you get from SS Reporting Services' Excel renderer.  With the gratifying responses come lots of questions about details and areas that I haven't covered.  So here's a round up of some of those points.

I'm going to thank Beth for most of the items in this catch-all list, but I'd also like to issue a blanket "thank-you" to the astounding number of readers who continue to be interested in this topic.  


What do you use to test the XSLT (Part 1)?

A number of people have asked about my toolset; I've talked about the commercial XML editors that I use, and recommended some others.  Most XML editors give you an opportunity to generate output by apply an XSLT transformation to an XML document, although each is different. 

For those of you who are working in Visual Studio or the BIDS version of Visual Studio that ships with SQL Server as a development tool, you have a very simple choice in your current environment without adding on any tools. 

I didn't realize this was a problem for you, until Beth wrote about it.  As she worked on her custom XSLT for a report, she was deploying the XSLT to her report server to check it out -- or possibly exporting XML from within the Report Preview in Visual Studio;  I'm not really sure. 

The point is, running your report to check your transformation is the long way around, especially if your report runs lots of complex queries. 

Let's leave the RDL alone, and stop poking it, shall we?  You're finished developing the thing, you're just supplying an alternative format now.

Here's what I suggest you do:

  1. Export the XML from your report without  adding a custom XSLT, so you have your raw source file.  You needed this anyway, to figure out how the file was constructed, right?
  2. Open the exported XML as an XML file in Visual Studio.
  3. Open the Properties Window for this XML Document; you'll see something like this (in VS 2005; slightly better in VS 2008 in every way):

    Editing an XML Document in VS 2005  

  4. You see, in the Properties window, where there's a place for a Stylesheet name?  Go ahead and navigate to the one you've been working on; there's a little ellipsis for a file-picker dialog to the right, on that line, not showing in the screen shot here.  While you're at it, put an "output" filename in the appropriate row, although this is not required. 

  5. After visiting the Properties window, click back into the XML Document editor, on the left side, and wait for your change-of-focus to register.  You should see an XML context menu pad.  Open it.  Guess what happens when you use the "Show XSLT Output" item on this menu popup?


    No prizes for guessing...


  6. If you're a VS person anyway the above procedure is really all you need.  While VS isn't a great XSLT editor, it's fine for occasional use, and you can do all your work within your accustomed IDE without strain.


What do you use to test the XSLT (Part Deux)?

What if you're not a VS person?  Well, frankly, if I just want to apply an XSLT to an XML, I usually go with the command-line approach, using MSXSL.EXE.  This tiny EXE (it's under 30K) has decent error reporting, allows you to specify XSLT parameters (although you won't be doing that in an RS context), etc.  It's freely   available from Microsoft from the XML developer section of MSDN. You'll find it easily if you search for "command line transformation utility" or "msxsl.exe" in the downloads section.

MSXSL is, of course, just a quick wrapper around the MSXML core libraries, so you can also write yourself a little VBS script that does the same thing.   I've already posted an example of how to do this, and the example script referred to in that post, transformRDL.vbs, is part of the samples that accompany RDL Documenter.

MSXSL.EXE command line options

Put some PowerShell to work on top of this, if you want to!


The raw xml is the page content data, not the page header and footer data

Most banded report writers have to make a distinction between what I call the "formatting bands" and the "content bands".  "Formatting bands" are full of information that requires pagination to be applied, and therefore will be different from renderer to renderer, and different rendering instance even when done by the same renderer, because of different output page sizes.  In the case of the SQL Server Reporting Services engine's XML renderer, there is no concept of pagination, so the XML renderer only gives you the contents of the page body. 

Beth wanted to include some information from the page header in her report (possibly in the sheet tab name, or the print setup information we've just discussed).  Since the XML renderer doesn't give you that information, the usual way to handle this is to include everything you want in the page body instead.  You can make it white-on-white, so it doesn't appear in other renditions, or play other tricks to hide it. 

For what it's worth, I sometimes find myself putting the whole "Page header" into the body of the report for other reasons, and telling it to repeat on page.

Ersatz Page Header information in Report Body, using repeat on page

If you have an issue with getting something like this to work, give me a specific case, and I'll explain in more detail.


What can SSML (Excel 2003 XML Dialect) do? 
What can't it do? 
And how do you know?

Just BTW, and as a caveat, I didn't set out to become an expert in SSML, but it's a neglected art, and people keep coming to me for help in it.

It's no wonder SSML is neglected.  If you look up that acronym in Standards Land, it's already been re-used for another purpose (Speech Synthesis Markup Language).  In Microsoft Land, it's been superseded by Excel 2007's XML format, which is a bit harder to use and create, although quite a bit more capable. 

You certainly can't use XSLT with RS to get Excel 2007 as easily as you can create SSML; you'll need some more manual work than just attaching an XSLT to an RDL definition on the server.  So, perfect it isn't, but I still like Excel 2003 XML.

As a general rule, SSML can do ... most things that Excel can do, except for serving as a host to "foreign objects", such as MS Chart and images.  If you want to know exactly what is included in "most things", start with the documentation.

Where in the docs do you find good information about this?  The answer will probably surprise you: try doing a Save As XML Spreadsheet 2003 in Excel 2007.  Even if you're saving a blank workbook, you'll get a warning about features that won't be included in this format.

Saving to SSML from Excel 2007

When you press help, here's what you learn:

  
XML Spreadsheet 2003

This XML Spreadsheet 2003 file format (.xml) does not retain the following features:

  • Auditing tracer arrows
  • Chart and other graphic objects
  • Chart sheets, macro sheets, dialog sheets
  • Custom views
  • Data consolidation references
  • Drawing object layers
  • Outlining and grouping features
  • Password-protected worksheet data
  • Scenarios
  • User-defined function categories
  • VBA projects

New Office Excel 2007 features, such as improved conditional formatting, are not supported in this file format. The new row and column limits of Excel 2007, however, are supported.


I know you'll be shocked to hear this...

The help file entry you see above is far more complete than the information we had about SSML in Excel 2003 documentation, but it's not complete-complete.

So how do you really know?

Most people get started writing SSML by Saving Excel As SSML and then looking at what they get.  They slavishly follow what they got from the internal "decisions" that Excel makes about how to do this translation.

This practice is okay for a while, but it  leads to a lot of extremely bad practices.

For example, Excel uses generated style names that are difficult to maintain, and tends to include many more of them than you actually have used in any Excel workbook, just because you've changed your mind a couple of times while working on it.  For goodness' sakes: figure out which you need, toss the rest out.  Then re-name them with sensible names so you know to which types of cells you should apply them when you write your XSLT.  I've put a small snippet below; you'll see that I've used a reasonable name.

The right place to learn about SSML is from its schema documentation.

SSML is an XML dialect, the schema is published, as it is with most XML dialects, to give you exactly this information. SSML's XSD is available to tell you exactly what is allowed and what is not allowed, what Excel will recognize and render and what it can't.   Save As gives you the "learn from an example" method, but you can never be sure how much in that example was a quirk and how much was required.  The XSD gives you the whole picture and the correct syntax for everything, without ambiguity.

You'll find the full set of Office 2003 XML Reference Schemas are available on the Microsoft site; if the link I've just given you is not correct, just search for that phrase on the MS site and you'll find it.  The organization of the various general and specific schema files, and the contents of the Excel-specific schema, are straightforward and clear, and they're all heavily annotated.

Office 2003 Reference Schemas

Extra tip:

The editor in the screenshot above is a free editor called First Object XML Editor.  By a wierd coincidence, its short name is FOXE!

This app has few frills but some notable benefits:

  • It loads very large files extremely fast.
  • It's a tiny download with no installation routine (it's a C++ program, I believe).
  • It handles file encodings well (including Chinese characters).
  • It searches and formats/indents large files like a dream.  My team uses it when a file has been created without extra white space. 

    Visual Studio tends to balk at the load because of "long line lengths", or crash when you ignore the warnings and try to load the large file anyway.   We load it quickly to FOXE, use the Indent feature to break the lines up, save it, and then Visual Studio will load the file.

Beth's question: a case-in-point for what's missing from the help file and what's hard to find out

If you look at the screen shot above, you'll see that I've zeroed in on the section describing the "PrintType" complex type, which Contains workbook and worksheet print options, according to the schema annotation.  Just as with "regular" binary Excel, you can specify the comments layout, whether you want draft quality, scaling, paper sizes and resolutions, etc. You can specify whether gridlines are printed, and whether columns are printed left-right or top-bottom as a large worksheet is broken into printer-page-size chunks.

Beth wanted to use Excel's facility to repeat a designated set of rows on every printed page, to use as static column headers.  This was something I had never had occasion to do.

SSML will let you freeze a set of columns or rows in the screen-display of a worksheet, just like binary Excel, and it's very easy to find the facility in the SSML schema:

             <xsd:element name="SplitHorizontal" type="xsd:int" default="0" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Contains the number of points from the top of the window that a worksheet is split horizontally.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="SplitVertical" type="xsd:int" default="0" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Contains the number of points from the left of the window that a worksheet is split vertically.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="FreezePanes" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Specifies whether the panes of a worksheet window are frozen.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="FrozenNoSplit" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Specifies whether the frozen panes of a worksheet window are not split.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            

... and SSML also gives you the opportunity to include custom content in the page header and footer; this is clearly spelled out in the XSD.  But I couldn't find what Beth was asking for, and this really had me scratching my head.  The schema contains about a zillion different settings to specify attributes of Pivot Tables. No matter how warped Microsoft priorities are, it seemed inconceivable that they would have left out this basic feature.

Well, they didn't leave it out but, it's not something you'll really figure out from the schema, either.

Sigh.  When in doubt, go back to the "learn from an example" strategy.

It turns out that this feature isn't baked into the Excel XSD because it uses one of Excel's "magic" named ranges: the one called Print_Titles.  Anything included in a named range with this magic name gets treated in a special way, and this is just as true in SSML as in binary Excel.

But the magic range names aren't called out in the annotations (where else would they be able to put a secret knowledge thing like this, from an XML perspective?!?).

The Named Range feature is, of course, thoroughly baked into the XSD.  To use it, you define a range with the magic name and tell it what rows to look at...

<Worksheet ss:Name="Sheet1">
  <Names>
   <NamedRange ss:Name="Print_Titles" ss:RefersTo="=Sheet1!R1:R3"/>
  </Names> 

... then you use the NamedCell syntax to call out the items that will actually need to be repeated by Excel. (And don't ask me why it works this way.  I don't know.  That is one of the dangers of learning from examples, remember?)

 <Table>  
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="String">My major title line</Data><NamedCell
      
ss:Name="Print_Titles"/></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="String">My minor title line</Data><NamedCell
      
ss:Name="Print_Titles"/></Cell>
   </Row>
   <Row ss:AutoFitHeight="0" >
    <Cell ss:StyleID="sHeaderLeft"><NamedCell ss:Name="Print_Titles"/></Cell>
    <Cell ss:StyleID="sHeader"><NamedCell ss:Name="Print_Titles"/></Cell>
    <Cell ss:StyleID="sHeader"><NamedCell ss:Name="Print_Titles"/></Cell>
    <Cell ss:StyleID="sHeader"><NamedCell ss:Name="Print_Titles"/></Cell>
    <Cell ss:StyleID="sHeader"><Data ss:Type="String">Address</Data><<NamedCell ss:Name="Print_Titles"/></Cell>
    <Cell ss:StyleID="sHeader"><Data ss:Type="String">Invoice To</Data><NamedCell
      
ss:Name="Print_Titles"/></Cell>
    <Cell ss:StyleID="sHeader"><Data ss:Type="String">$</Data><NamedCell
      
ss:Name="Print_Titles"/></Cell>
    <Cell ss:StyleID="sHeaderRight"><Data ss:Type="String">Notes</Data><NamedCell
      
ss:Name="Print_Titles"/></Cell>
   </Row>

One more thing:

When you're trying to find a feature like print setup in the Excel schema, remember to distinguish between an item that is specific to a Worksheet and an item that is global to a Workbook.  These items will be in different places in the schema. 

Print_Titles happens to be a "sheet thing", as my example above probably shows.  However, if I am not mistaken, Excel ranges used for other purposes can be global to the book as well.

What have I forgotten?

There is no end to the wonder and glory that is Excel.

Here's an apology if I have not addressed your question in this random list.  Nudge me e-mail or something and I'll top it up.

Tags:

Reporting | SQL Server | XML/XSLT | YAPS

Comments (136) -

2/14/2009 12:12:13 AM #

beth

Hi Lisa,

I have (quickly) read through your blog, and I am not sure that the repeating header problem is fixed, but, I won't know for sure until I have some time to compare my XSLT to what you've shown here. I had already got the "Freeze Frame" working, and though I know I had already employed "Print_Titles", it did not cause the column headers to repeat on every page, which is, supposedly, what it is supposed to do. But, there may be something else in my XSLT that causes it not to work.

As for page header/footer, I have not processed, yet, what you've said about that.

regards, beth

beth United States

3/9/2009 9:46:44 AM #

Slim Fit Blog

thnx für die die wunderbare Ideen, die Sie mir geteilt,

Slim Fit Blog United States

4/2/2009 8:03:17 PM #

Kampanye Damai Pemilu Indonesia 2009

Nice stuff,

that's very usefully for me..

thanks.

Kampanye Damai Pemilu Indonesia 2009 Indonesia

4/8/2009 3:35:51 PM #

Copper Sinks

I will try out this method but I have the same doubt as berth lets see the output.Anyways thanks for the lovely tutorial.

Copper Sinks United Kingdom

4/20/2009 10:48:59 PM #

Kampanye Damai Pemilu Indonesia 2009

Very informative article..
thanks for this great informations, now i find what i want to know..
thanks..

Kampanye Damai Pemilu Indonesia 2009 United States

4/22/2009 7:52:36 AM #

Criminal Background Check

Thank you. The point is that we all work together, so we can now share our website with even more reasons.

Criminal Background Check United States

6/9/2009 8:35:38 AM #

Top Business day

You are the rock!!

Top Business day

6/12/2009 1:22:22 PM #

auspuffrohr

Super Tipps, weiter so.

auspuffrohr Germany

6/16/2009 9:45:48 PM #

gambling online

I am encountering the header problem as well. I tried to reread it but what am i missing?

gambling online United States

6/29/2009 10:05:46 AM #

Online Poker

Thanks man. A useful one for me and my company where I am working as well

Online Poker

6/29/2009 10:03:57 PM #

Joseph

Thanks a lot for this post

Joseph

6/30/2009 8:47:55 AM #

Veyton Templates

thanks for sharing this, awesome articel will be helpfull for me.

Veyton Templates Germany

7/1/2009 7:54:43 AM #

Arts degree

thanks for sharing this, awesome articel will be helpfull for me.

Arts degree United States

7/1/2009 7:55:13 AM #

Nursing degree

I am encountering the header problem as well. I tried to reread it but what am i missing?

Nursing degree United States

7/1/2009 7:55:41 AM #

Natural science School

Super Tipps, weiter so.

Natural science School United States

7/1/2009 7:56:10 AM #

Online Nutrition degree

interesting stuff

Online Nutrition degree United States

7/1/2009 8:00:12 AM #

Teaching learning degree

awesome articel will be helpfull for me.

Teaching learning degree United States

7/1/2009 2:12:37 PM #

stop dreaming start action

Useful information

stop dreaming start action

7/3/2009 2:12:03 PM #

jennifer

thanks for the insight.

jennifer United States

7/5/2009 1:19:37 AM #

Peter

Just subscribed to your RSS Feed, hopefully you poduce mode great Info in the future.

Peter Australia

7/5/2009 4:02:15 AM #

Sanchez

this is the only working private profile viewer

Sanchez

7/5/2009 6:31:26 AM #

tf2 weapons

nice blog, is it hard to run a blog like this?

tf2 weapons United States

7/7/2009 8:01:47 PM #

internet marketing

What is the latest version of XML and XSLT? And what is the difference b/w their previous versions?

internet marketing United States

7/9/2009 12:56:15 AM #

Netcoders

This is new info for me thanks.

Netcoders United States

8/23/2009 5:55:20 PM #

vietnamet

Great information! Very useful for me. Thanks a lot.

vietnamet United States

9/2/2009 6:13:27 PM #

Going Green

I get what I want after viewing your blog. thx bro.

Going Green United States

9/4/2009 11:38:30 AM #

Dental Implants

very interesting read, I enjoyed very much, greetings from the UK Smile

Dental Implants United Kingdom

9/9/2009 11:11:17 AM #

cara membuat blog

Useful info

cara membuat blog United States

9/14/2009 5:07:38 AM #

Dorothy

thanks for sharing this, Very good articel helpfull for me.
<a href="backpacking-in-europe.com/.../">Backpacking Towels/a>

Dorothy United States

9/16/2009 11:10:05 AM #

Geschenk Kind

Great report, especially that XML-thing is something a little bit difficult. Thanks for that info from Geschenk Kind

Geschenk Kind Germany

9/17/2009 5:31:37 PM #

ARTICLE

thank you for your constant updation

ARTICLE United States

9/24/2009 4:54:55 PM #

parier en ligne

That seems to be useful ! thanks for it !

parier en ligne

10/8/2009 12:44:10 AM #

Andreas Ballongas

Thanks for the great information! Is it a lot of good umsetzen.Very nice blog. Greetings

Andreas Ballongas Germany

10/13/2009 12:50:48 PM #

cheap electric wheelchair

This code has helped me alot. thanks.

cheap electric wheelchair United States

10/17/2009 6:15:31 PM #

handicap ramps

What an info packed article. Thanks very much I really got a lot out of that!

handicap ramps United States

10/17/2009 6:27:34 PM #

Halloween costumes

Cool article and thanks for all your hard work putting it together for us

Halloween costumes United States

10/22/2009 11:59:06 AM #

Alleinunterhalter K&#246;ln

Thanks for your hard work and sharing this for us all.

Alleinunterhalter Köln Germany

10/24/2009 2:56:24 PM #

namensschilder

tolle informationen
werde die seite zu meinen favoriten hinzufügen

gruß
namensschilder shop

namensschilder Germany

11/2/2009 6:04:16 PM #

medical tourism

I've never been a fan of VS, but this is very helpful. Good way to work around some of the frustration.

medical tourism United States

11/25/2009 11:44:45 PM #

Driving Lessons Manchester

all put together it really helps

Driving Lessons Manchester United Kingdom

12/15/2009 1:03:44 PM #

Webdesign

Great tutorial for Excel, thanks!

Webdesign Germany

1/20/2010 8:04:41 AM #

Acompanhantes BH

I liked the content of your article, thank you!

Acompanhantes BH Brazil

1/24/2010 10:05:09 PM #

Reverse Osmosis Tank

Excellent tutorial. Thanks for sharing with us. Very useful.

Reverse Osmosis Tank United States

2/3/2010 9:07:04 PM #

Esther Lichtel

Thanks for the useful informations on your homepage. I would appreciate it if you come visit ours. Thanks a lot

Esther Lichtel Germany

2/3/2010 9:08:12 PM #

Alexander Flitter

Thanks to the great informations you give out. Think it helps me going on with my project.

Alexander Flitter Germany

2/7/2010 6:14:00 AM #

acompanhantes

I've never been a fan of VS, but this is very helpful. Good way to work around some of the frustration.

acompanhantes France

2/8/2010 5:13:52 AM #

BH Acompanhantes

very good your text.

BH Acompanhantes Brazil

2/11/2010 6:59:37 AM #

Mens white dress shoes

Well written tutorials. Thanks for the blog post.

Mens white dress shoes

2/12/2010 12:09:13 PM #

online Reiseb&#252;ro

Very intersting post. Thanks a lot.

online Reisebüro Germany

2/22/2010 5:00:01 PM #

Cria&#231;&#227;o de Sites



handicap ramps

What an info packed article. Thanks very much I really got a lot out of that!

Criação de Sites Germany

2/28/2010 6:53:00 AM #

Gun Safes

Starting to understand a bit more now... Thanks for keeping it simple!

Gun Safes United States

2/28/2010 10:27:59 PM #

Eli Wilner Master Framer

Awesome stuff you guys got here.  I really like how the theme of the website and how well you organized the content.  It's a marvelous job I will come back and check you out sometime.

Eli Wilner Master Framer United States

3/4/2010 5:56:20 PM #

Solitaire spielen

Techspoken is best spoken ;)

Solitaire spielen Germany

3/4/2010 5:56:38 PM #

Pokerturniere

Greets from Germany

Pokerturniere Germany

3/7/2010 4:33:56 AM #

cara cepat terindex google

Thanks very good and nice post

cara cepat terindex google Indonesia

3/10/2010 9:49:52 AM #

Hotel Bayerischer Wald

I've subscribed to your News-Feed, for another good infos. Greetz, Hotel Bayerischer Wald

Hotel Bayerischer Wald Germany

3/19/2010 6:59:08 PM #

 sonnerie gratuite pour portable

Everything is very open and very clear explanation of issues. It contains truly information. Your website is very useful. Ii impresses me so much!

sonnerie gratuite pour portable United States

4/1/2010 5:07:54 PM #

Poker gratuit

Awesome article, thanks ! Smile

Poker gratuit France

4/7/2010 7:20:23 AM #

Aktuelles aus Bodenmais

What an great article. Thanks very much it helped me a lot. Aktuelles aus Bodenmais

Aktuelles aus Bodenmais Germany

4/17/2010 12:10:17 PM #

Rechnung schreiben

Great post, very useful. Thanks a lot

Rechnung schreiben Germany

4/25/2010 9:59:57 AM #

mondial foot 2010

Great article, thanks !

mondial foot 2010 France

4/29/2010 3:48:02 AM #

Speaking English

Nice tutorial..I got some important tips

Speaking English United States

4/30/2010 8:08:36 AM #

Zitronenbaum

Amazing tutorial. Considering the time you obviously put in this article i really want to thank you. You helped me a lot.

Thanks.

Zitronenbaum Germany

5/1/2010 12:26:46 AM #

Speaking English

Could anyone please tell me that is there any .pdf tutorials website where I can get tutorials like this one in .pdf files?

Speaking English United States

5/1/2010 11:42:04 PM #

Pepper Spray

Superb information, thanks so much!

Pepper Spray United States

5/12/2010 5:38:22 AM #

crazy taxi

Very good guide. Always interesting to read.

crazy taxi United States

5/20/2010 12:35:44 AM #

Facebook Smiley

Everything is very open and very clear explanation of issues. It contains truly information. Your website is very useful. Ii impresses me so much!

Facebook Smiley United States

5/23/2010 5:28:08 AM #

savingsaccount

Thanks for providing the tools to be used with the different situations. This is very useful solutions, thanks for the help!

savingsaccount United States

5/23/2010 5:30:39 AM #

savingsaccount

The warning on Excel schema is one thing I found to be very useful. Thanks for securing this warning and for making it available.

savingsaccount United States

5/26/2010 5:34:30 PM #

Online Backup

I want to give credit to the author of this site and as well as to the administrator who helped to make this topic very effective. As I read the article I have come to the conclusion that you really have the expertise and by that I will have to recommend you to my friends.

Online Backup United States

6/2/2010 9:56:51 AM #

logo design jobs

I use XSLT and XML often. It is a modern technology if you want to make your site faster.

logo design jobs Romania

6/2/2010 2:04:36 PM #

mahjong

Good information for testing.

mahjong United States

6/10/2010 5:08:38 PM #

Industrial Design Seattle

Finally, a little clarification. Thanks a lot!

Industrial Design Seattle United States

6/21/2010 6:43:11 PM #

killer sudoku puzzles

Ive always had trouble with excel in fact I dont like it, maybe its due to my lack of knowldge

killer sudoku puzzles United States

7/1/2010 1:42:50 AM #

sri lanka all inclusive

Thanks for clarifying, LSN.

sri lanka all inclusive United States

7/2/2010 12:19:33 AM #

 Bingo Deposit Bonus

I'm new in the field of programming and i find this site very informative and very useful for my next and future project. Thank you.

Bingo Deposit Bonus United States

7/6/2010 11:14:32 PM #

designer sunglasses

Hi Lisa,

I have (quickly) read through your blog, and I am not sure that the repeating header problem is fixed, but, I won't know for sure until I have some time to compare my XSLT to what you've shown here. I had already got the "Freeze Frame" working, and though I know I had already employed "Print_Titles", it did not cause the column headers to repeat on every page, which is, supposedly, what it is supposed to do. But, there may be something else in my XSLT that causes it not to work.

As for page header/footer, I have not processed, yet, what you've said about that.

designer sunglasses United States

7/10/2010 7:47:38 AM #

mahjong

Very good tutorial. I'm impressed. Add to your bookmarks.

mahjong United States

7/16/2010 4:33:54 AM #

Tenerife Property

I had already got the "Freeze Frame" working, and though I know I had already employed "Print_Titles", it did not cause the column headers to repeat on every page, which is, supposedly, what it is supposed to do. But, there may be something else in my XSLT that causes it not to work.

Tenerife Property United States

7/27/2010 9:49:04 PM #

minifridges

Thanks for posting, testing XML is kind of tricky.

minifridges United States

8/4/2010 8:32:27 AM #

Oyunlar

I was looking for a long time. I came across while browsing the siteSmile

Oyunlar Turkey

8/4/2010 8:35:06 AM #

3D Oyunlar

@Oyunlar If you follow this site often you'll encounter a very nice article.

3D Oyunlar Philippines

8/4/2010 8:36:03 AM #

Bakugan Games

I think this site has been opened for only half, what a beautiful hell.

Bakugan Games Panama

8/4/2010 8:36:47 AM #

Araba Oyunlari

Hi, I really liked your site. I would come across in a very high quality paper, I hope it will always add such a beautiful article. The Buddha is my end game content related to: None Laughing

Araba Oyunlari Macedonia (FYROM)

8/6/2010 3:59:11 AM #

Annonces moto

Good information for testing.

Annonces moto France

8/10/2010 2:48:58 AM #

Tina Deko

The code helpe me - good work - many thanks Wink

Tina Deko Germany

8/10/2010 1:03:13 PM #

Auto Blog System X

Good information thanks.

Auto Blog System X United States

8/15/2010 2:58:41 AM #

free itunes dowload

Very useful information indeed. You are so great.

free itunes dowload United States

8/15/2010 9:48:57 PM #

Carpet Cleaning

I was too confuse about tool set. You blog really helped me a lot.

Carpet Cleaning United Kingdom

8/25/2010 5:43:02 PM #

criminal justice degree

That is really a complex discovery with excel. I guess I have to go back to every step slowly to be able to enjoy what you have just found out. Truly, computer is a world full of mysteries and complexities. People who really go down deeper into it are the ones lucky enough to discover every mystery that has been covered behind every application. There are really more to explore with these applications which needs a total sacrifice of time and patience.

<a href="www.criminaljusticedegreejobs.com/">criminal justice degree</a>

criminal justice degree Canada

8/26/2010 10:45:50 PM #

Angioraphy treatment Cancun

I wanted to thank you for this excellent read!! I definitely loved every little bit of it.Cheers for the info!!!! & This is the perfect blog for anyone who wants to know about this topic. You know so much its almost hard to argue with you .........
thanks

Angioraphy treatment Cancun United States

8/28/2010 1:52:30 AM #

How to guide

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.It shows the awerness of pepole,
<a href="http://alltip.com">How to guide</a>

How to guide India

8/28/2010 4:25:03 AM #

Coach Outlet Store Online

Thanks for XSLT coding..really i learn it first time in my life..

Coach Outlet Store Online United States

8/29/2010 9:00:41 AM #

mukul

xlts is effective for me. i just read it and get some information.people will be helpful by this.argument will be happen definately but some points are strong.<a href="http://www.datarecoveryengland.com/"; rel="new tab">Data recovery</a>

mukul Bangladesh

8/30/2010 5:29:03 AM #

Payday Loan Lenders

Much love from the UK, keep up the great work LSN!Smile

Payday Loan Lenders United Kingdom

8/31/2010 12:25:51 AM #

free wow account

The code work on me, THANKS. everything is in details. my time and effort was not wasted.

free wow account United States

9/1/2010 12:13:34 AM #

PC fix

Good articles, before reading, I thought, have full knowledge of excel. But after reading this knowledgeable article, I have got extra information. In short way, this is very informative articles.

<a href="http://www.1clickpcfix.com">PC Fix </a> with <a href="http://www.1clickpcfix.com">; Online technical support</a>

PC fix United States

9/1/2010 12:25:55 PM #

Autopflege

Sehr informativer Artikel. Vielen Dank!

Autopflege Germany

9/1/2010 4:56:17 PM #

Oliver Mack

The post is really informative and very helpful! Although, the header problem seems to be still unresolved! However, with this information and with the cooperation of everyone, such task will be easily solved!
Hope to have more of this and more people willing to support and help such posts!

<a href="http://www.md5-decrypt.com/">md5 decrypt</a>

Oliver Mack United States

9/8/2010 7:31:10 AM #

http://www.accreditednursingprograms.org/

Given the detailed explanation you have just presented here, all possible questions from the users seems to be cleared by now. Certainly, users can very well understand given that you have added an image along with every explanation.

http://www.accreditednursingprograms.org/ Canada

9/9/2010 3:02:29 PM #

Busch gardens coupons

beth Great article - I really need to read more post of this standard

Busch gardens coupons United States

9/10/2010 6:38:31 AM #

miniclip games

Nice post.I’m really impressed with your article, such great information you mentioned here..

miniclip games United States

9/12/2010 7:40:46 AM #

silverlight download

Even this is a random article, I read many valuable points.

silverlight download United States

9/13/2010 3:15:33 AM #

Fix Slow PC

Awesome article. Good information regarding the Excel. Keep posting. Thanks a lot.
<a href="http://www.pcdocpro.com/">; Fix Slow PC </a> with <a href="http://www.pcdocpro.com/">PC Doctor</a>

Fix Slow PC United States

9/14/2010 8:08:23 AM #

3D Yaris Oyunlari

good article thanks admin.

3D Yaris Oyunlari United States

9/16/2010 4:13:22 AM #

Medical Malpractice Lawsuits

Thanks for sharing report in excel and XSLT language... please tell us about full form of this language XSLT ... Thanks for providing for us.I read your article with my pleasure..

Medical Malpractice Lawsuits United States

9/16/2010 2:49:07 PM #

One shoulder tops

lim Fit Blog I love the photos too. You can just see candid smiles there.. So attractive, eventhough different eyes may regard it differently!

One shoulder tops United States

9/16/2010 8:40:49 PM #

business school

Discovering more of the features that excel can do is a great way to improve our work. Especially those individuals who are working in front of the computer most of time, they can benefit from these for sure. Though this might be complicated for many especially those who haven't studied IT, you can always seek for assistance to better understand it.

business school Canada

9/18/2010 3:04:59 PM #

Zauberer Berlin

I find your post very good, it is real, and some times funny as well. keep it up! I I love such good article.

Zauberer Berlin Germany

9/21/2010 4:05:17 AM #

Tower Defence Games

I had already got the "Freeze Frame" working, and though I know I had already employed "Print_Titles", it did not cause the column headers to repeat on every page

Tower Defence Games India

9/21/2010 4:33:03 AM #

Medical Malpractice Lawsuits

I really thank you for the valuable info on this great subject and look forward to more great postsThanks a lot for enjoying this beauty article with me. I am apreciating it very much! Looking forward to another great article. Good luck to the author! all the best!

Medical Malpractice Lawsuits United States

9/21/2010 9:25:59 AM #

Blackjack

thanks for sharing this xebsite good for me

Blackjack Brunei Darussalam

9/22/2010 5:36:02 AM #

Over 50 Life

Thanks for the tips on debugging XML. You simpified something I found complicated before.

Over 50 Life United States

9/28/2010 11:53:25 AM #

lanyards

Thanks a lot for tell rather excellent informations. Your web site is great.I am impressed by the data that you have on this weblog. It shows how effectively you comprehend this topic. Bookmarked this excellent page, will appear back again for much more. You, my friend, amazing! I found just the specifics I previously looked all over the place and just couldn’t come across. What a ideal site. Like this webpage your web site is 1 of my new most-liked.I like this data proven and it has offered me some sort of idea to have good results for some cause, so keep up the good perform!

lanyards United States

10/3/2010 1:07:33 AM #

Surveys Money

Thank you very much for sharing this information with us! I'm sure we all greatly appreciate it. Well worth the time in reading!

Surveys Money United States

10/3/2010 9:54:53 AM #

Jim Maui

Thanks for the detailed info.  I am forwarding this page to my employees to read also.  

Jim Maui United States

10/4/2010 6:46:23 PM #

Free iTunes codes

This blog post was very helpful to me. Thank you.

Free iTunes codes United States

10/13/2010 1:26:41 PM #

America's Unemployed

Just the info I was looking for. Thank You

America's Unemployed United States

10/13/2010 1:28:43 PM #

haier-hc125fvs

very charming writing style

haier-hc125fvs United States

10/22/2010 10:36:49 AM #

Foreclosure Process in Georgia

Its a rather good concept but a bit confusing. Looking forward to updated

Foreclosure Process in Georgia United States

10/23/2010 2:31:28 AM #

pennsylvania foreclosure process

Great read... Go for more updates. thanks

pennsylvania foreclosure process United States

10/24/2010 3:39:45 PM #

apple gift card

Hey, I totally support random acts of kindness!!  Keep it up, like the post title tonsSmile

apple gift card United States

10/26/2010 4:39:15 AM #

Cleaning Services Dunfermline

Thanks for this article, it was very helpful.

Cleaning Services Dunfermline United Kingdom

10/28/2010 2:36:07 PM #

RoccoSoft

is an article explains very well, good job!

RoccoSoft United States

10/31/2010 2:34:30 AM #

homemade pregnancy test

op werkdag This was an interesting read, however I am not sure I understand the main themes. Regardless it was a fun read!

homemade pregnancy test United States

11/5/2010 4:13:50 PM #

Muskelaufbau-Ern&#228;hrung.com

Cool article and thanks for all your hard work putting it together for us.
Regards

Muskelaufbau-Ernährung.com Germany

11/8/2010 3:38:17 PM #

Flirt

This is exactly what i was looking for, thanks a lot.

Flirt Germany

11/9/2010 10:56:38 AM #

Alexander

Very intersting post.Thanks for sharing.

Alexander Germany

11/10/2010 9:53:30 AM #

araba yarislari

Anything to standardize the reporting process is excellent, especially for technical people. It's the content that matters, so when the design is already taken care of then it's one less thing to consider.

araba yarislari Turkey

11/16/2010 12:57:05 PM #

hotel

hank you very much for this very informative article!
Now I find what i want to know.
Regards from Germany!

hotel Turkey

12/16/2011 12:57:44 PM #

ma&#231; oyunları

Thank You mentioned everything in an article

maç oyunları Turkey

12/20/2011 11:06:56 PM #

Boiler

I'll try the code, I hope can the code work well, thanks for your article.

Boiler Indonesia

12/25/2011 6:16:59 AM #

Tutorial Blog

Thanks for your kind information

Tutorial Blog Indonesia

12/27/2011 2:47:37 AM #

888paydayloan.com

This is exactly what i was looking for, thanks a lot.

888paydayloan.com United States

3/24/2012 3:35:00 AM #

Morecambe Builders

I've been an Excel user now for about 10 years and I've never seen this before. Thank you so much for putting this tutorial together.

http://www.buildersmorecambe.co.uk

Morecambe Builders United Kingdom

4/27/2012 1:39:51 PM #

Directory

I like you entire blog...geep doing this god job!

Directory Romania

Pingbacks and trackbacks (1)+

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading