That's funny. After I sent my help message I just thought about it some and I 
ended up doing exactly as you mentioned. I found the headers settings somewhere 
and follow that as well.  I also felt something in wonder to quote values as 
necessary for excel friendly CSV files.

Sometimes I freak out too early and send a help message and then find my 
answers right after on my own.

Sent from my iPhone

> On Dec 14, 2014, at 9:41 AM, CHRISTOPH WICK | i4innovation GmbH, Bonn 
> <[email protected]> wrote:
> 
> Hi Robert,
> 
> Maybe this helps:
> 
> 1. create a ordinary WOComponent, e.g. MyCSVComponent.wo 
> 
> In the HTML part, you don't write HTML (skip the whole "<html><body> ... 
> </body></html>" stuff), but the CSV content you need:
> 
> <wo:repeat list="$myList" item="$myItem">
> "<wo:string value="$myItem.property1" />", "<wo:string 
> value="$myItem.property2" />" ...
> </wo:repeat>
> 
> 2. in MyCSVComponent.java you override the method "appendToResponse" like 
> this:
> 
> public class MyCSVComponent extends ERXComponent {
> 
>    public String fileName;
>    public NSArray<MyObject> myList;
>    public MyObject item;
> 
>    // override appendToResponse to let the browser make a download, 
>    // instead of displaying the result in a brwoser window
>    public void appendToResponse(WOResponse response, WOContext context) {
>        // set the mimetype to csv
>        response.setHeader("text/comma-separated-values", "content-type");
>        // tell the browser to download the file instead of showing it in a 
> window
>        response.setHeader("attachment; filename=\""+fileName+"\"", 
> "Content-Disposition");
>    
>        // create the response
>        super.appendToResponse(response, context);
>    }
> }
> 
> where "fileName" is the name of the file you will give the download.
> 
> In your master page, create a link like this:
> 
> <wo:link action = "$downloadCSVAction">download CSV</link>
> 
> and in the Java-Code of your master page
> 
>    public WOActionResults downloadCSVAction() {
>        MyCSVComponent nextPage = (MyCSVComponent) 
> pageWithName(MyCSVComponent.class);
>        nextPage.myList = ... // set the list to an NSArray of whatever you 
> need
>        nextPage.fileName = ... // set the fileName to whatever you need
>        return nextPage;
>    }
> 
> 
> Does this answer your question?
> 
> C.U.CW
> -- 
> The three great virtues of a programmer are Laziness, Impatience and Hubris. 
> (Randal Schwartz)
> 
>> On 13.12.2014, at 21:59, Robert B. Hanviriyapunt <[email protected]> 
>> wrote:
>> 
>> Help!  I need some advise on how to EASILY accomplish the following:
>> 
>> have array of ERXKey(Path)s for columns to report
>> have array of EOs
>> must make wo:link's action respond with CSV (browser to download, not 
>> display in browser)
>> 
>> what is the easiest way (i’m hoping it’s not D2W unless it make it really 
>> easier)
>> 
>> please a quick demo solution somewhere would be awesome!
>> 
>> = Robert =
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/cw%40i4innovation.de
>> 
>> This email sent to [email protected]
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to