Tim, Rick,
Currently working on a similar problem.
Rick,would you mind sending your Perl version as a short term fix.
Tim keep me in the loop re developments on the CF Side
Appreciate that
Regards
D
Daryl Fullerton,
Managing Partner,
BizNet Solutions,
Allaire Premier Partner (Ireland)
133 - 137 Lisburn Road
Belfast
BT9 7AG
N.Ireland
Direct +44 (0) 28 9022 7888
Tel +44 (0) 028 9022 3224
Fax +44 (0) 028 9022 3223
[EMAIL PROTECTED]
Http://www.BizNet-Solutions.com
[EMAIL PROTECTED] (Chairman)
Http://www.cfug.ie The Irish Cold Fusion User Group
-----Original Message-----
From: Tim Dempsey [mailto:[EMAIL PROTECTED]]
Sent: 05 December 2000 13:21
To: CF-Talk
Subject: Re: How can I use CF to push data into a statistical package or
an Ex cel spreadsheet?
Thanks very much Rick. This is really helpful. And, if you would, can
you
send the working Perl version to me at [EMAIL PROTECTED] ? I'd
appreciate that, too.
Thanks again,
-- Tim Dempsey
----- Original Message -----
From: "Rick Osborne [Mojo]" <[EMAIL PROTECTED]>
To: "CF-Talk" <[EMAIL PROTECTED]>
Sent: Monday, December 04, 2000 8:17 PM
Subject: RE: How can I use CF to push data into a statistical package or
an
Ex cel spreadsheet?
> Tim Dempsey asked:
> > How do I take that data and get it into Excel on the client's
machine?
>
> We had to do something like this last month (with Doughnut charts
instead
of
> Pie charts, but it's close enough). I never could get it to work 100%
in
> CF, as Excel wouldn't honor my Quit() command and would just stay
open,
> leaving lots of little zombies all over the place. However, on a whim
I
> translated it into Perl and got it to work that way. (And, oddly
enough,
> the Perl version is *much* easier on the eyes, for once.)
>
> Anyway, I apologize for the minimal documentation, but this was really
just
> a quick hack for me. YMMV and all that. If you ever figure out the
Quit()
> problem, let me know. I'd love to know what I'm doing wrong. Also,
if
you
> want the (working) Perl version, let me know and I'll send it via
separate
> channels (as I figured I'd get flamed 'til the end of time if I posted
Perl
> to this list). It's much smarter and does things like palette
conversion
> (so that you aren't stuck with Excel's default colors), and other
neat-o
> tricks.
>
> -R
>
> <CFSETTING ENABLECFOUTPUTONLY="YES" SHOWDEBUGOUTPUT="No">
>
> <!---
> graph/doughnut.cfm
> --->
>
> <!---
> Constants
> --->
> <CFSET xlWorksheet=-4167>
>
> <CFINCLUDE TEMPLATE="../../include/_ext2attr.cfm">
> <CFPARAM NAME="Attributes.Height" DEFAULT="200">
> <CFPARAM NAME="Attributes.Width" DEFAULT="200">
> <CFPARAM NAME="Attributes.Rows" DEFAULT="0">
> <CFPARAM NAME="Attributes.Cols" DEFAULT="0">
> <CFPARAM NAME="Attributes.Title" DEFAULT="">
> <CFPARAM NAME="Attributes.Legend" DEFAULT="0">
> <CFPARAM NAME="Attributes.Type" DEFAULT="gif">
> <CFSET Attributes.Height=Attributes.Height*0.749999999>
> <CFSET Attributes.Width=Attributes.Width*0.749999999>
> <CFSET FileName="">
>
> <CFTRY>
> <CFTRY>
> <CFOBJECT ACTION="CONNECT" TYPE="COM" CLASS="Excel.Application"
> NAME="App">
> <CFCATCH>
> <CFOBJECT ACTION="CREATE" TYPE="COM" CLASS="Excel.Application"
> NAME="App">
> </CFCATCH>
> </CFTRY>
> <CFSET Workbooks=App.Workbooks>
> <CFSET Workbook=Workbooks.Add(xlWorksheet)>
> <CFLOOP COLLECTION="#Workbook.WorkSheets#" ITEM="Sheet">
> <CFLOOP FROM="1" TO="#Attributes.Rows#" INDEX="Row">
> <CFLOOP FROM="1" TO="#Attributes.Cols#" INDEX="Col">
> <CFSET ColLetter=Chr(Col + Asc('A') - 1)>
> <CFSET CellName="vr#Row#c#Col#">
> <CFIF StructKeyExists(Attributes,CellName)>
> <CFSET Range=Sheet.Range("#ColLetter##Row#")>
> <CFSET Range.Value=Attributes[CellName]>
> </CFIF>
> </CFLOOP>
> </CFLOOP>
> <CFSET ColLetter=Chr(Attributes.Cols + Asc('A') - 1)>
> <CFSET SourceRange=Sheet.Range("A1:#ColLetter##Attributes.Rows#")>
> <CFSET ChartObjects=Sheet.ChartObjects()>
> <CFSET
Chart=ChartObjects.Add(0,0,Attributes.Width,Attributes.Height)>
> <CFSET Donut=Chart.Chart>
> <CFSET Donut.ChartWizard(SourceRange, -4120, 1, 2, 1, 0)>
> <CFSET Series=0>
> <CFLOOP FROM="1" TO="#DecrementValue(Attributes.Cols)#"
INDEX="Series">
> <CFSET Ser=Donut.SeriesCollection(Series)>
> <CFSET Ser.HasDataLabels=0>
> <CFLOOP FROM="1" TO="#Attributes.Rows#" INDEX="Row">
> <CFSET Cellname="c_#Series#_#Row#">
> <CFIF StructKeyExists(Attributes,CellName)>
> <CFSET CellColor=Attributes[CellName]>
> <CFOUTPUT><P>Resetting color #CellColor#</P></CFOUTPUT>
> <CFIF Left(CellColor,1) IS "##">
> <CFSET CellColor=InputBaseN(Mid(CellColor,6,2) &
> Mid(CellColor,4,2) & Mid(CellColor,2,2),16)>
> </CFIF>
> <CFSET Point=Ser.Points(Row)>
> <CFSET Interior=Point.Interior>
> <CFSET Interior.Color=CellColor>
> </CFIF>
> </CFLOOP>
> </CFLOOP>
> <CFIF Attributes.Title IS "">
> <CFSET Donut.HasTitle=0>
> <CFSET PlotArea=Donut.PlotArea>
> <CFSET PlotArea.Top=0>
> <CFSET PlotArea.Left=0>
> <CFSET PlotArea.Height=Attributes.Height-8>
> <CFSET PlotArea.Width=Attributes.Width-8>
> <CFELSE>
> <CFSET Donut.HasTitle=1>
> <CFSET ChartTitle=Donut.ChartTitle>
> <CFSET ChartTitle.Caption=Attributes.Title>
> </CFIF>
> <CFIF Attributes.Legend>
> <CFSET Donut.HasLegend=1>
> <CFELSE>
> <CFSET Donut.HasLegend=0>
> </CFIF>
> <CFSET Border=Chart.Border>
> <CFSET Border.LineStyle=-4142>
> <CFSET
FileName="c:\temp\Doughnut#CreateUUID()#.#Attributes.Type#">
> <CFSET Donut.Export(FileName,Attributes.Type,0)>
> <CFSET Donut.Delete()>
> </CFLOOP>
> <CFCATCH TYPE="Any">
> <CFOUTPUT>
> <H1>Error</H1>
> <P>#CFCATCH.Message#</P>
> <BLOCKQUOTE>#CFCATCH.Detail#</BLOCKQUOTE>
> </CFOUTPUT>
> </CFCATCH>
> </CFTRY>
>
> <CFSET WorkBook.Saved=-1>
> <CFSET App.Quit()>
> <CFSET App="">
>
> <CFIF FileName IS NOT "">
> <CFCONTENT TYPE="image/#Attributes.Type#" FILE="#FileName#"
> DELETEFILE="Yes">
> </CFIF>
>
> <CFSETTING ENABLECFOUTPUTONLY="NO">
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at
http://www.fusionauthority.com/bkinfo.cfm
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists