Example from ya-csv test to write file : https://github.com/koles/ya-csv/blob/master/test/echo.js
Xavier On 20 juin, 13:42, ravi prakash <[email protected]> wrote: > Hi Andrew, > > You really solved my problem. > One more help, I went through ya-csv module and was able to upload > and parse csv file. > But i did not understand how i could create a csv using ya-csv > module. > Can you please provide me sample code to create csv using ya-csv. > Once again thanks for sharing information. > > - Ravi > > On Jun 20, 11:43 am, Andrew Stone <[email protected]> wrote: > > > > > > > > > Hi Ravi, > > > Your for loop look fine, but I believe you messed up the headers. > > Don't capitalize them. Also, the 'content-disposition' header is a bit > > of an anomaly. It just doesn't look right to most programmer's eyes, > > and I've screwed it up also resulting in no file download. It cannot > > have any (unescaped) quote characters within the value. It is a a > > single string like this: 'attachment; filename=sample.csv', not > > 'attachment; 'filename=sample.csv'. > > > The easy way to remember this is that HTTP headers are just key value > > pairs consisting of strings. Thus the value of all of them must be a > > single string (potentially with escaped characters - not sure about > > that). Fixing the headers should fix your problems. Also, the headers > > must be set before the calls to res.write because they have to be > > written first to the client (hence the term header). > > > Finally, since you already have the array in memory, writing it in > > multiple chunks won't make a difference. It will just get buffered by > > the OS, especially since it's all being written in a synchronous for > > loop. The real reason to use streaming is so you can limit your > > runtime memory consumption. This is typically achieved by receiving > > some data from the db, writing it to the socket, then fetching more > > from the db, etc... That way you can keep a constant memory load on > > the server and not have to worry about really large stuff building up > > in memory. That being said, your for loop is absolutely correct, and > > the right way to do this in your circumstances. I just wanted to give > > you a bit more background. > > > Hope that helps, > > Andrew > > > On Wed, Jun 20, 2012 at 2:24 AM, ravi prakash <[email protected]> wrote: > > > > Hi Andrew, > > > > Thanks for your quick response. I tried your first option. > > > Say, i have data from database in array called results, > > > > for(var i = 0; i < results.length; i++) { > > > > body = ''; > > > body = results[i]+'\n'; > > > res.write(body); > > > } > > > res.setHeader('Content-disposition', 'attachment; > > > filename='sample.csv'); > > > res.setHeader('Content-type', 'text/csv'); > > > res.end(''); > > > > I want to write data in chunks since my array is very big. I used > > > res.write() for this. By doing this my response is written directly to > > > browser > > > and file download option is not asked. How can i solve this? > > > > -Ravi > > > > On Jun 20, 10:40 am, Andrew Stone <[email protected]> wrote: > > >> Hi Ravi, > > > >> Since you already have the csv content generated you just want to send > > >> it out with res.write() or res.end() depending upon whether you are > > >> writing it out in chunks or not (streaming). > > > >> To get the CSV to be a downloadable file you need to add the > > >> 'content-type' and 'content-disposition' headers to your response: > > >> res.header('content-type','text/csv'); > > >> res.header('content-disposition', 'attachment; filename=report.csv'); > > > >> For more complex stuff, ya-csv looks useful. > > > >> -Andrew > > > >> On Wed, Jun 20, 2012 at 1:47 AM, Matthew Vickers <[email protected]> > > >> wrote: > > >> > I have used ya-csv in the past, it works well for our basic usage. > > > >> >https://github.com/koles/ya-csv > > > >> > Matt > > > >> > ----- "ravi prakash" <[email protected]> wrote: > > > >> >> Hi group, > > > >> >> How can i generate a excel/csv file from nodejs application. Say, I > > >> >> have a link in webpage and on click of link, i query database and put > > >> >> result into excel/csv file. Finally the file download must be > > >> >> opened. > > >> >> I am building application using nodejs+express. > > > >> >> My goal is to export data into a excel/csv file ie generate excel/csv > > >> >> file from my application. > > > >> >> Say i have link in webpage ----- > > > >> >> <a href='/report'>Export</a> > > > >> >> Server side i have code ------ > > > >> >> app.get('/report', function(req, res) { > > > >> >> //get data from db > > > >> >> How to put data to csv/excel file ??? > > > >> >> } > > > >> >> -- > > >> >> Job Board:http://jobs.nodejs.org/ > > >> >> Posting guidelines: > > >> >>https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > > >> >> You received this message because you are subscribed to the Google > > >> >> Groups "nodejs" group. > > >> >> To post to this group, send email to [email protected] > > >> >> To unsubscribe from this group, send email to > > >> >> [email protected] > > >> >> For more options, visit this group at > > >> >>http://groups.google.com/group/nodejs?hl=en?hl=en > > > >> > -- > > >> > Job Board:http://jobs.nodejs.org/ > > >> > Posting > > >> > guidelines:https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > > >> > You received this message because you are subscribed to the Google > > >> > Groups "nodejs" group. > > >> > To post to this group, send email to [email protected] > > >> > To unsubscribe from this group, send email to > > >> > [email protected] > > >> > For more options, visit this group at > > >> >http://groups.google.com/group/nodejs?hl=en?hl=en > > > > -- > > > Job Board:http://jobs.nodejs.org/ > > > Posting > > > guidelines:https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > > > You received this message because you are subscribed to the Google > > > Groups "nodejs" group. > > > To post to this group, send email to [email protected] > > > To unsubscribe from this group, send email to > > > [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/nodejs?hl=en?hl=en -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
