Return-Path: Mailing-List: contact poi-user-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list poi-user@jakarta.apache.org Received: (qmail 91517 invoked from network); 14 Apr 2003 16:16:34 -0000 Received: from web40702.mail.yahoo.com (66.218.78.159) by daedalus.apache.org with SMTP; 14 Apr 2003 16:16:34 -0000 Message-ID: <20030414161638.99939.qmail@web40702.mail.yahoo.com> Received: from [64.32.176.246] by web40702.mail.yahoo.com via HTTP; Mon, 14 Apr 2003 09:16:38 PDT Date: Mon, 14 Apr 2003 09:16:38 -0700 (PDT) From: Lior Shliechkorn Subject: Re: Streaming XLS file to screen To: POI Users List In-Reply-To: <011001c302a0$9a035b40$3201a8c0@Notebookdev> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="0-1632658377-1050336998=:99560" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --0-1632658377-1050336998=:99560 Content-Type: text/plain; charset=us-ascii Here you go. By the way, it seems to be wanting to save the 1st servlet's name (ProcessReport) and open that in Excel, not a .xls file for some reason. private void processRequest(HttpServletRequest request, HttpServletResponse response) { response.setHeader("pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Expires", "0"); response.setContentType("application/octec-stream"); HttpSession session = request.getSession(false); ServletOutputStream tobrowser = null; try{ tobrowser = response.getOutputStream(); * Here we create the workbook */ wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("Daily Activity Report"); sheet.setGridsPrinted(false); // turn off the gridlines in printing /* * Create the top row and put the header there */ HSSFRow row = sheet.createRow((short) 0); String heading = "Daily Activity Report for " + adate; createHeaderCell(heading, row, (short) 0, HSSFCellStyle.ALIGN_LEFT); for (int i = 1; i <= 8; i++) { createHeaderCell("", row, (short) i, HSSFCellStyle.ALIGN_LEFT); } sheet.addMergedRegion(new Region(0,(short)0,0,(short)7)); row = sheet.createRow((short) 1); globalRowCount = 2; // start on second row /* * Begin Populating Report */ drs1 = dstmt1.executeQuery(asql); showTop = false; while(drs1.next()) { rcdnumAccount++; // increment account count getCurrentAccountInformation(sheet); } // end while GlobalSql.closeSR(dstmt1, drs1); /* * Finished generating all the report -> output to file */ wb.write(tobrowser); } catch(Exception e) { System.err.println("Exception thrown in processRequest(): " + e.getMessage()); e.printStackTrace(); } finally { try { GlobalSql.closeSR(dstmt1, drs1); tobrowser.flush(); tobrowser.close(); } catch (Exception sqlex) { System.err.println("SQLException thrown in processRequest() finally: " + sqlex.getMessage()); sqlex.printStackTrace(); } } } // end DailyActivityReport Nate wrote:Gotcha. You should be able to do this without saving to disk. Can you post the source? At least to the part of the servlet that sends the content to the browser? That would make things easier. ----- Original Message ----- From: "Lior Shliechkorn" To: "POI Users List" Sent: Monday, April 14, 2003 10:54 AM Subject: Re: Streaming XLS file to screen > App Details: Wind2k && Tomcat 4.0.5I don't want to save the files locally, since there are a few options for > each report to be run and I don't want to have a file create for each report > and for each user running a report. File sizes can vary drastically, and I > don't want to have to take care of the storage and clean up of the files. > So it's easier for the user to take care of that end. The process that creates the report is as follows: > 1. JSP page with a form for the report desired (with an option to view as excel) > 2. Servlet to process which report servlet to pass the (req, res) to. > 3. Servlet for the report (2 flavors: 1) for HTML view 2) for excel format view. I hope this gives you a better picture of what is being done. And the higher ups of > course want this to happen and not be saved locally. > > > Nate wrote:You may have to set the content length. If this doesn't work for you > (without knowing the particulars of your app I can't say for sure). Just > write it out to a temp directory on the server, and then do a > response.sendRedirect(relative file path) to the saved file. For example > > tomcat app root > c:\tomcat\webapps\myapp > > save file to c:\tomcat\webapps\myapp\temp\12345.xls > > from the myapp context, redirect like this > > response.sendRedirect("temp/12345.xls"); > > Is there any reason in particular that you don't want to save it to disk on > the server? > > ----- Original Message ----- > From: "Lior Shliechkorn" > > To: "POI Users List" > > Sent: Monday, April 14, 2003 10:25 AM > Subject: Re: Streaming XLS file to screen > > > > Nate, Thanks again for the prompt resonse. I was not able to get this to > work. The file download screen shows up and then an error message with the > message that the internet site is unavailable pops up and terminates the > download. Any ideas why this would be happening? Lior > > > > Nate wrote:Well, doing this in a servlet, you have a > response object that you are > > passed in your servlet service methods (POST, GET, etc). code like the > > following should work > > > > //get an output stream to the browser > > ServletOutputStream tobrowser = response.getOutputStream(); > > > > //set the response content type > > response.setContentType("application/octec-stream"); > > > > //write the book out to the output stream > > WorkBook.write(tobrowser); > > > > //close streams and clean up (flush may not be needed) > > tobrowser.flush(); > > tobrowser.close(); > > > > ----- Original Message ----- > > From: "Lior Shliechkorn" > > > > To: "POI Users List" > > > > Sent: Monday, April 14, 2003 9:58 AM > > Subject: Re: Streaming XLS file to screen > > > > > > > I'm very new to Java in general, would you be able to give me an example > > of what you're talking about. Do I need to put out.println("file output") > ? > > I'm not quite certain. Thanks again. > > > > > > Nate wrote:If this is being done through a web > > application, simply get the output > > > stream to the browser, write the constructed excel document out. Oh, and > > > make sure that you set the content type to application/octet-stream (or > > > alternately, if you want it to open in the browser for MS users, set the > > > content type to application/vnd.ms-excel) > > > > > > --Nathan McMinn > > > > > > ----- Original Message ----- > > > From: "Lior Shliechkorn" > > > > > > To: "Poi" > > > > > > Sent: Monday, April 14, 2003 9:48 AM > > > Subject: Streaming XLS file to screen > > > > > > > > > > hello, I would like to be able to have the user save the file on their > > > system by outputting it to the screen, and not saving it to my disk > after > > it > > > has been generated. I'm using POI to generate reports for Excel users, > and > > > would like to not have to save the file to my disk first and then have > the > > > users be able to access it. Is there a way to have a pop up to ask them > to > > > open or save as so that it all happens on the user end? Thank you very > > much > > > for your time,Lior > > > > > > > > > > > > --------------------------------- > > > > Do you Yahoo!? > > > > Yahoo! Tax Center - File online, calculators, forms, and more > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org > > > For additional commands, e-mail: poi-user-help@jakarta.apache.org > > > > > > > > > > > > --------------------------------- > > > Do you Yahoo!? > > > Yahoo! Tax Center - File online, calculators, forms, and more > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org > > For additional commands, e-mail: poi-user-help@jakarta.apache.org > > > > > > > > --------------------------------- > > Do you Yahoo!? > > Yahoo! Tax Center - File online, calculators, forms, and more > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org > For additional commands, e-mail: poi-user-help@jakarta.apache.org > > > > --------------------------------- > Do you Yahoo!? > Yahoo! Tax Center - File online, calculators, forms, and more --------------------------------------------------------------------- To unsubscribe, e-mail: poi-user-unsubscribe@jakarta.apache.org For additional commands, e-mail: poi-user-help@jakarta.apache.org --------------------------------- Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more --0-1632658377-1050336998=:99560--