Creating Excel with asp.net

G

Guy Incognito

Hello,

I've written an asp.net application that creates Excel documents. It
works by creating an excel document in XML format.

But I wonder if I'm reinventing the wheel. I know that there are ways to
read and write Excel files with ADO, but as far as I can tell, it
doesn't provide the flexibility I need. I need to be able to generate
tabs, cell formatting, formulas, etc.

Is there a better way to dynamically create an excel file from scratch
on an asp.net web server, through automation or otherwise? Are there any
open source projects that deal with this?

Thanks,
Jason
 
W

William Ryan eMVP

If you want to install Excel and adjust the security settings somewhat, you
can definitely do it through automation. I use VBSCript and just output
the contents of a datagrid to excel, but this is really limited in terms of
formatting and since I'm not using Automation , formatting is lame.

Another choice is FarPoint's Spread. I've used it extensively and it has a
desktop and a web version. If you get it from www.xtras.net I think the
xtras subscription will pay for itself.
http://www.xtras.net/products/spreadwebforms.asp You don't need excel at
all but you want easily write to the native Excel format and you have
unbelievable power over it, in addition, users can use the Spread control
within a browser and you can use stuff like VLOOKUP and a whole lot of other
neat stuff on the browser - which is amazing b/c the user nor the server
need Excel. I do a fair amount of work and reviewing of third party tools
and Spread is without a doubt one of the finer tools I've encountered.
Everything Mike has over there is top notch and he's pretty anal about who
he features so if you have a few extra bucks, it's well worth the
investment.

If you just want to output a grid to excel though, you can set your
formatting in the grid stick a button on the form (HTML) and then just
invoke this <script language="vbscript">
Sub exportbutton_onclick
Dim sHTML, oExcel, oBook
sHTML = document.all.item("dgLogs").outerhtml

Set oExcel = CreateObject("Excel.Application")

Set oBook = oExcel.Workbooks.Add
oBook.HTMLProject.HTMLProjectItems("Sheet1").Text = sHTML
oBook.HTMLProject.RefreshDocument
oExcel.Visible = true
oExcel.UserControl = true
End Sub
</script>
</body>
</HTML>

HTH,

Bill



--

W.G. Ryan, eMVP

http://forums.devbuzz.com/
http://www.knowdotnet.com/williamryan.html
http://www.msmvps.com/WilliamRyan/
 
G

Guy Incognito

Hi William,

Thanks for your reply.

The VBSCript solution isn't flexible enough for what I need. My asp.net
application creates a complicated spreadsheet with multiple tabs,
formulas and lots of cell formatting.

It creates the spreadsheet as an XML document on the server and
downloads it to the client.

I've found commercial software (like ExcelWriter) that can create
spreadsheets on the server, but so far, I've found nothing for free.


What I want is to make sure that there isn't some easy alternative to
using XML to generate Excel spreadsheets.

Thanks,
Jason
 
P

Paul Clement

¤ Hello,
¤
¤ I've written an asp.net application that creates Excel documents. It
¤ works by creating an excel document in XML format.
¤
¤ But I wonder if I'm reinventing the wheel. I know that there are ways to
¤ read and write Excel files with ADO, but as far as I can tell, it
¤ doesn't provide the flexibility I need. I need to be able to generate
¤ tabs, cell formatting, formulas, etc.
¤
¤ Is there a better way to dynamically create an excel file from scratch
¤ on an asp.net web server, through automation or otherwise? Are there any
¤ open source projects that deal with this?
¤

The simple answer is no. The only tool I am aware of that can provide this level of control over the
presentation of the data is the Excel application itself.


Paul ~~~ (e-mail address removed)
Microsoft MVP (Visual Basic)
 
G

Guy Incognito

Hi Paul,

Thanks for the response. That's actually good news, because I'm
developing an application that creates Excel XML documents
programmatically, and hope to distribute it as an open source project.

However, I'm a little concerned about the lack of documentation for
SpreadsheetML, the XML language that describe Excel spreadsheets. I've
found documentation for the language's basic features, but it's
incomplete. I've had to figure out the more advanced features by adding
them in Excel and reverse engineering them from the resulting XML
document.

Does anyone know (or care to speculate) why complete documentation of
SpreadsheetML isn't available? Should I be reasonably confident that it
will be upwardly compatible with future versions of Excel?

Or is there more complete documentation somewhere that I've missed?

Thanks,
Jason

*** Sent via Devdex http://www.devdex.com ***
Don't just participate in USENET...get rewarded for it!
 
P

Paul Clement

¤ Hi Paul,
¤
¤ Thanks for the response. That's actually good news, because I'm
¤ developing an application that creates Excel XML documents
¤ programmatically, and hope to distribute it as an open source project.
¤
¤ However, I'm a little concerned about the lack of documentation for
¤ SpreadsheetML, the XML language that describe Excel spreadsheets. I've
¤ found documentation for the language's basic features, but it's
¤ incomplete. I've had to figure out the more advanced features by adding
¤ them in Excel and reverse engineering them from the resulting XML
¤ document.
¤
¤ Does anyone know (or care to speculate) why complete documentation of
¤ SpreadsheetML isn't available? Should I be reasonably confident that it
¤ will be upwardly compatible with future versions of Excel?
¤
¤ Or is there more complete documentation somewhere that I've missed?
¤

Did you download the following:

Office 2003 XML Reference Schemas
http://www.microsoft.com/downloads/...52-3547-420A-A412-00A2662442D9&displaylang=en


Paul ~~~ (e-mail address removed)
Microsoft MVP (Visual Basic)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top