I have a requirement to save grid results in an Excel XML compatable format. Since the default UltraGridExcelExporter does not support this I'm looking to build my own.
First, has anyone done this and have something that the would like to share?
Assuming not, I'm thnking that the "clean" way would be to build a class derived from UltraGridExcelExporter and instead of writing a binary workbook write the XML equivalent instead. I guess I'm looking for "design" advice to see if this sounds like a reasonable approach. The reason I was going there was to use the existing "event" model to trigger writing my results but I also don't want to write the standard stuff so this may be more work than benefit.
I'll also submit a "feature" request.
Thanks
Neil,
XSL is a bit tricky, expecially if you try to code it by hand. There are a few xml authoring tools out there which help you write xsl, and test it live. Think of XSL as a special xml file which describes how to transcode an input. Ok, maybe that doesn't make it clearer :) Basically you compile a list of rules and expressions, that when applied to a given input xml string, produces an output xml string.
I think your best bet would be to leverage your existing library code to produce the Excel XML file. You can drive this through the Excel Exporter, or you can loop through the grid manually - I don't feel strongly which method is better so I'd say choose whichever one you feel works best for you.
-Tony
For other projects I built a class that renders simple Excel XML output. It takes method calls to add the various elements so I was kind of looking to drive that type of class off of the existing event model.
I had not thought of the XSL transform idea. I don't really understand XSL (I'm sorry to admit) so that path did not occure to me but is worth looking into.
I did think of VSTO but I want to be able to generate all this stuff on systems that may or may not have Office installed so didnt' want to build in any MS Office specific dependencise (other than the formats of course).
I've not had time to explore this much since my question/post as I've been off on other report related items but I'll let you know what I figure out (assuming I figure something out of course).
Neil
You really want it to be Excel XML?
The grid actually renders out as XML, but requires an XSL transform to turn it into HTML. You may be able to leverage that aspect and simply transform the grid's XML into XML that Excel likes. The other idea would be to leverage VSTO and re-save an excel binary (xls) into an excel XML file. Not sure this is possible though, but it's an idea.
I don't think there's anything wrong with your idea, in fact I like it - but I'm not sure how much work it will be as I'm not sure about the particulars of Excel XML