Solved

cfspreadsheet basics

Posted on 2013-06-07
4
326 Views
Last Modified: 2013-06-08
Just getting back into CF after a long layoff of about 10 years!

Trying out the cfspreadsheet tag. I have a query, and I am able to get the xls file to be saved on my server - I just want a prompt displayed for the user to either open or save the file - can this be done with cfspreadsheet??

Thanks for any help!
0
Comment
Question by:cb_it
  • 3
4 Comments
 
LVL 52

Accepted Solution

by:
_agx_ earned 500 total points
ID: 39229124
No. cfspreadsheet only generates the file. Use cfcontent/cfheader to return it to the browser.

IIRC, there is one small nuisance w/cfspreadsheet. "query" and "name" are mutually exclusive, meaning you must save it to disk first.  Use a unique file name (to avoid clashes w/other downloads) -  something like createUUID() should work:

<cfset filePath = "c:\desired\path\to\#CreateUUID()#.xls">
<cfspreadsheet action="write" query="yourQuery" fileName="#filePath#">

Open in new window


then display it with cfcontent/cfheader. Use the "delete" attribute so the temp file will be removed automatically after the download (or shortly thereafter).

<cfheader name="Content-Disposition" value="attachment; filename=whateverNameYouWant.xls" >
<cfcontent type="application/vnd.msexcel" file="#filePath#" delete="true" >

Open in new window


EDIT If you use the spreadsheet functions, instead of the tag, you do not need to save it to a file. You can save it to a variable instead. Works better with small spreadsheets.

<cfset theSheet = SpreadSheetNew()>
... add query data ...
<cfheader name="Content-Disposition" value="attachment; filename=whateverNameYouWant.xls" >
<cfcontent type="application/vnd.msexcel" file="#SpreadSheetReadBinary(theSheet)#" >

Open in new window

0
 

Author Comment

by:cb_it
ID: 39229829
Working perfectly, thanks. I wish the Adobe documentation was a little better, or gave more examples. I'm sure opening/saving the actual file is used quite a bit. Thanks again for the help.
0
 
LVL 52

Expert Comment

by:_agx_
ID: 39229856
That's a common problem w/documentation.  It's too focused on explaining the single tag or function. Not enough common usage examples that show how to tie different things together.  I understand why ... it's involved. Takes a lot of time to put together good examples. (Nothing worse than a bad or broken example). Still .. would be nice to see more of them.
0
 
LVL 52

Expert Comment

by:_agx_
ID: 39231740
(For the archives) Typo correction. The 2nd example should be:

<cfset theSheet = SpreadSheetNew()>
... add query data to sheet ...
<cfheader name="Content-Disposition" value="attachment; filename=someName.xls" >
<cfcontent type="application/vnd.msexcel" variable="#SpreadSheetReadBinary(theSheet)#" >
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article  is about submitting  form through  ColdFusion.Ajax.submitForm to the action page and send a response back in JSON format which later can be decoded using ColdFusion.JSON.decode. By this way you can avoid the usual page refresh for subm…
Hi. There are several upload tutorials using jquery and coldfusion. I found a very interesting one here Upload Your Files using Jquery & ColdFusion and Preview them (http://www.randhawaworld.com/) . I did keep the main js functions but made sever…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now