Hi

> -----Original Message-----
> From: Rohilla, Vishal [mailto:[EMAIL PROTECTED]
> Sent: Friday, January 26, 2007 7:31 PM
> To: [email protected]
> Subject: RE: How to use POI (Newbie)
> 
> Thanks Mike,
> 
> It helped. When I gave the absolute path it created the file at the
> appropriate location. I also noticed w/o absolute location it was creating
> the file in my weblogic domains directory.
> 
> Now it raises the question, in production it is not a good idea to create
> the file at some location at user's box. Should one use
> ServletOutputStream over FileOutputStream in this case?
> 
[Tahir Akhtar] You cannot create a file at user's box. All you can do is to
stream back the content through servlet stream with appropriate mime
headers. User will see their browser's save/open dialog in this case. OTH
you can generate a file on server with a random/autogenerated name and send
bank a href to it in response html. In this case you will have to manage
cleanup of generated files.

> Thanks again for all the help.
> 
> Vishal
> 
> ________________________________
> 
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Thu 1/25/2007 10:21 AM
> To: [email protected]
> Subject: RE: How to use POI (Newbie)
> 
> 
> 
> The code worked for me. Since you're using a FileOutputStream in a
> Servlet and not using an absolute target path but just a relative
> filename, I assume you just looked in the wrong place for the file. Or
> you code was not even called. Out of topic.
> 
> Attached, my slightly reformatted code which worked.
> 
> --
> Mike Haller
> Innovations
> 
> import java.io.FileOutputStream;
> 
> import org.apache.poi.hssf.usermodel.HSSFCell;
> import org.apache.poi.hssf.usermodel.HSSFCellStyle;
> import org.apache.poi.hssf.usermodel.HSSFDataFormat;
> import org.apache.poi.hssf.usermodel.HSSFFont;
> import org.apache.poi.hssf.usermodel.HSSFRow;
> import org.apache.poi.hssf.usermodel.HSSFSheet;
> import org.apache.poi.hssf.usermodel.HSSFWorkbook;
> 
> public class ReportAction {
> 
>         public static void main(String[] args) throws Exception {
>                 short rownum;
>                 FileOutputStream out = new
> FileOutputStream("c:\\workbook.xls");
>                 HSSFWorkbook wb = new HSSFWorkbook();
>                 HSSFSheet s = wb.createSheet();
>                 HSSFRow r = null;
>                 HSSFCell c = null;
>                 HSSFCellStyle cs = wb.createCellStyle();
>                 HSSFCellStyle cs2 = wb.createCellStyle();
>                 HSSFCellStyle cs3 = wb.createCellStyle();
>                 HSSFDataFormat df = wb.createDataFormat();
>                 HSSFFont f = wb.createFont();
>                 HSSFFont f2 = wb.createFont();
>                 f.setFontHeightInPoints((short) 12);
>                 f.setColor((short) 0xc);
>                 f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
>                 f2.setFontHeightInPoints((short) 10);
>                 f2.setColor((short) HSSFFont.COLOR_RED); // make it bold
>                 f2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
>                 f2.setStrikeout(true);
>                 cs.setFont(f);
>                 cs.setDataFormat(df.getFormat("#,##0.0"));
>                 cs2.setBorderBottom(cs2.BORDER_THIN);
>                 cs2.setFillPattern((short)
> HSSFCellStyle.SOLID_FOREGROUND); // set the
> 
> cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
>                 cs2.setFont(f2);
>                 wb.setSheetName(0,
> "\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F "
>                                 +
> "\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043A\u0430",
>                                 HSSFWorkbook.ENCODING_UTF_16);
>                 for (rownum = (short) 0; rownum < 30; rownum++) {
>                         r = s.createRow(rownum);
>                         if ((rownum % 2) == 0) {
>                                 r.setHeight((short) 0x249);
>                         }
>                         for (short cellnum = (short) 0; cellnum < 10;
> cellnum += 2) {
>                                 c = r.createCell(cellnum);
>                                 c
>                                                 .setCellValue(rownum
>                                                                 * 10000
>                                                                 +
> cellnum
>                                                                 +
> (((double) rownum / 1000) + ((double) cellnum / 10000)));
>                                 String cellValue;
>                                 c = r.createCell((short) (cellnum + 1));
>                                 if ((rownum % 2) == 0) {
>                                         c.setCellStyle(cs);
> 
> c.setEncoding(HSSFCell.ENCODING_COMPRESSED_UNICODE);
>                                         c.setCellValue("Test");
>                                 } else {
>                                         c.setCellStyle(cs2);
> 
> c.setEncoding(HSSFCell.ENCODING_UTF_16);
> 
> c.setCellValue("\u0422\u0435\u0441\u0442");
>                                 }
>                                 s.setColumnWidth((short) (cellnum + 1),
>                                                 (short) ((50 * 8) /
> ((double) 1 / 20)));
>                         }
>                 }
>                 rownum++;
>                 rownum++;
>                 r = s.createRow(rownum);
>                 cs3.setBorderBottom(cs3.BORDER_THICK);
>                 for (short cellnum = (short) 0; cellnum < 50; cellnum++)
> {
>                         c = r.createCell(cellnum);
>                         c.setCellStyle(cs3);
>                 }
>                 s = wb.createSheet();
>                 s.setSelected(true);
>                 wb.setSheetName(1, "DeletedSheet");
>                 try {
>                         wb.write(out);
>                 } finally {
>                         out.close();
>                 }
>         }
> }
> -----Original Message-----
> From: Rohilla, Vishal [mailto:[EMAIL PROTECTED]
> Sent: Thursday, January 25, 2007 4:08 PM
> To: POI Users List
> Subject: RE: How to use POI (Newbie)
> 
> Yes I did close the fileoutputstream in the finally block. For the
> reference here is the code:
> 
> public class ReportAction extends Action implements GlobalValues {
> 
>  public ActionForward execute(ActionMapping mapping, ActionForm form,
> HttpServletRequest request,
>    HttpServletResponse response)throws Exception  {
>   short rownum;
> //   create a new file
>   FileOutputStream out = new FileOutputStream("workbook.xls");
> //   create a new workbook
>   HSSFWorkbook wb = new HSSFWorkbook();
> //   create a new sheet
>   HSSFSheet s = wb.createSheet();
> //   declare a row object reference
>   HSSFRow r = null;
> //   declare a cell object reference
>   HSSFCell c = null;
> //   create 3 cell styles
>   HSSFCellStyle cs = wb.createCellStyle();
>   HSSFCellStyle cs2 = wb.createCellStyle();
>   HSSFCellStyle cs3 = wb.createCellStyle();
>   HSSFDataFormat df = wb.createDataFormat();
> //   create 2 fonts objects
>   HSSFFont f = wb.createFont();
>   HSSFFont f2 = wb.createFont();
> //  set font 1 to 12 point type
>   f.setFontHeightInPoints((short) 12);
> //  make it blue
>   f.setColor( (short)0xc );
> //   make it bold
> //  arial is the default font
>   f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
> //  set font 2 to 10 point type
>   f2.setFontHeightInPoints((short) 10);
> //  make it red
>   f2.setColor( (short)HSSFFont.COLOR_RED ); //  make it bold
>   f2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
>   f2.setStrikeout( true );
> //  set cell stlye
>   cs.setFont(f);
> //  set the cell format
>   cs.setDataFormat(df.getFormat("#,##0.0"));
> //  set a thin border
>   cs2.setBorderBottom(cs2.BORDER_THIN);
> //  fill w fg fill color
>   cs2.setFillPattern((short) HSSFCellStyle.SOLID_FOREGROUND); //  set
> the cell format to text see HSSFDataFormat for a full list
>   cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
> //   set the font
>   cs2.setFont(f2);
> //   set the sheet name in Unicode
>   wb.setSheetName(0, "\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F "
> +
> 
> "\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043A\u0430",
>                   HSSFWorkbook.ENCODING_UTF_16 );
> //   in case of compressed Unicode
> //   wb.setSheetName(0, "HSSF Test",
> HSSFWorkbook.ENCODING_COMPRESSED_UNICODE );
> //   create a sheet with 30 rows (0-29)
>   for (rownum = (short) 0; rownum < 30; rownum++)
>   {
>       // create a row
>       r = s.createRow(rownum);
>       // on every other row
>       if ((rownum % 2) == 0)
>       {
>           // make the row height bigger  (in twips - 1/20 of a point)
>           r.setHeight((short) 0x249);
>       }
>       //r.setRowNum(( short ) rownum);
>       // create 10 cells (0-9) (the += 2 becomes apparent later
>       for (short cellnum = (short) 0; cellnum < 10; cellnum += 2)
>       {
>           // create a numeric cell
>           c = r.createCell(cellnum);
>           // do some goofy math to demonstrate decimals
>           c.setCellValue(rownum * 10000 + cellnum
>                   + (((double) rownum / 1000)
>                   + ((double) cellnum / 10000)));
>           String cellValue;
>           // create a string cell (see why += 2 in the
>           c = r.createCell((short) (cellnum + 1));
> 
>           // on every other row
>           if ((rownum % 2) == 0)
>           {
>               // set this cell to the first cell style we defined
>               c.setCellStyle(cs);
>               // set the cell's string value to "Test"
>               c.setEncoding( HSSFCell.ENCODING_COMPRESSED_UNICODE );
>               c.setCellValue( "Test" );
>           }
>           else
>           {
>               c.setCellStyle(cs2);
>               // set the cell's string value to
> "\u0422\u0435\u0441\u0442"
>               c.setEncoding( HSSFCell.ENCODING_UTF_16 );
>               c.setCellValue( "\u0422\u0435\u0441\u0442" );
>           }
> 
>           // make this column a bit wider
>           s.setColumnWidth((short) (cellnum + 1), (short) ((50 * 8) /
> ((double) 1 / 20)));
>       }
>   }
> //  draw a thick black border on the row at the bottom using BLANKS
> //   advance 2 rows
>   rownum++;
>   rownum++;
>   r = s.createRow(rownum);
> //   define the third style to be the default
> //   except with a thick black border at the bottom
>   cs3.setBorderBottom(cs3.BORDER_THICK);
> //  create 50 cells
>   for (short cellnum = (short) 0; cellnum < 50; cellnum++)
>   {
>       //create a blank type cell (no value)
>       c = r.createCell(cellnum);
>       // set it to the thick black border style
>       c.setCellStyle(cs3);
>   }
> //  end draw thick black border
> 
> //   demonstrate adding/naming and deleting a sheet
> //   create a sheet, set its title then delete it
>   s = wb.createSheet();
>   s.setSelected(true);
>   wb.setSheetName(1, "DeletedSheet");
> //  wb.removeSheetAt(1);
> //  end deleted sheet
> //   write the workbook to the output stream
> //   close our file (don't blow out our file handles
> //  wb.write(out);
> //  out.close();
> //  ServletOutputStream out = response.getOutputStream();
>   try
>   {
> //   response.setContentType("application/vnd.ms-excel");
> //   response.setHeader("Content-disposition","attachment;filename" +
> "workBook");
> //   out.write(wb.getBytes());
>    wb.write(out);
>   }
>   catch(IOException io)
>   {
>    ActionErrors errors = new ActionErrors();
>    ActionError error = new ActionError("error.fileretrieve.ioexception",
> io.getMessage());
>    errors.add( ActionErrors.GLOBAL_ERROR, error);
>    saveErrors( request, errors );
> //   EWODatabaseLogger.getInstance().log(session, "File Retrieve",
> io.getMessage());
> //   eWOLogger.write(DEBUG,io.getMessage(),io);
>    return mapping.findForward("error");
>   }
>   finally
>   {
>    out.close();
>   }
> 
>   return mapping.findForward("success");  } }
> 
> 
> ________________________________
> 
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Thu 1/25/2007 9:27 AM
> To: [email protected]
> Subject: RE: How to use POI (Newbie)
> 
> 
> 
> 1) Try any other mirror and look in the "dev" subfolder instead of the
> "release" subfolder.
> 2) Did you close the FileOutputStream as described in the text above the
> code sample?
> 
> 
> --
> Mike Haller
> Innovations
> 
> -----Original Message-----
> From: Rohilla, Vishal [mailto:[EMAIL PROTECTED]
> Sent: Thursday, January 25, 2007 3:24 PM
> To: POI Users List
> Subject: RE: How to use POI (Newbie)
> 
> When I go to download the jars at Jakarta POI site at the following URL:
> -
> 
> http://www.apache.org/dyn/closer.cgi/jakarta/poi/
> 
> I am not able to find poi-bin-3.0-alpha3-20061212 version. The version I
> get is is
> 
> poi-bin-2.5.1-final-20040804.zip
> 
> In the sample code I tried to run the code to export the data to the
> spreadsheet. The code is at the the following URL: -
> http://jakarta.apache.org/poi/hssf/how-to.html in the heading  'User
> API'  sub heading - 'Writing a new one'
> 
> It didn't through any error but also didn't create or open the new
> spreadsheet.
> 
> Could you please throw some light about how should one proceed to use
> HSSF to export data to excel spreadsheet?
> 
> Vishal
> 
> 
> 
> 
> 
> 
> 
> ________________________________
> 
> From: Tahir Akhtar [mailto:[EMAIL PROTECTED]
> Sent: Thu 1/25/2007 2:17 AM
> To: 'POI Users List'
> Subject: RE: How to use POI (Newbie)
> 
> 
> 
> Hi Rohilla
> 
> 1. Its advisable to use the latest release poi-bin-3.0-alpha3-20061212.
> 2. There is nothing special about poi jars. Just use it as you use any
> java library i-e include it in your classpath(or out it in your
> WEB-INF/lib) and reference the classes via import statement or fully
> qualified class names in your code.
> 
> What error are you getting when trying to run the sample code?
> 
> Wassalam
> Tahir
> 
> -----Original Message-----
> From: Rohilla, Vishal [mailto:[EMAIL PROTECTED]
> Sent: Thursday, January 25, 2007 2:31 AM
> To: [email protected]
> Subject: How to use POI (Newbie)
> 
> I downloaded the POI code from the mirror: -
> 
> http://mirror.candidhosting.com/pub/apache/jakarta/poi/release/
> 
> In the downloaded code I found the following jars: -
> 
> 1) poi-2.5.1-final-20040804.jar
> 2) poi-contrib-2.5.1-final-20040804.jar
> 3) poi-scratchpad-2.5.1-final-20040804.jar
> 
> Does anybody have any ideas about how to plugin poi jars and to start
> using it for sample examples at least.
> 
> I have gone throgh the documentation couldn't find instructions abt it.
> 
> Your help will be highly appreciated.
> 
> P.S - I added poi-2.5.1-final-20040804.jar in my WAR file and run one of
> the sample code  in "How To" Section to export the data to spreadsheet.
> But no luck.
> 
> Thanks
> 
> The contents of this e-mail are intended for the named addressee only.
> It contains information that may be confidential. Unless you are the
> named addressee or an authorized designee, you may not copy or use it,
> or disclose it to anyone else. If you received it in error please notify
> us immediately and then destroy it.
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/
> 
> 
> 
> The contents of this e-mail are intended for the named addressee only.
> It contains information that may be confidential. Unless you are the
> named addressee or an authorized designee, you may not copy or use it,
> or disclose it to anyone else. If you received it in error please notify
> us immediately and then destroy it.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/
> 
> 
> 
> The contents of this e-mail are intended for the named addressee only.
> It contains information that may be confidential. Unless you are the
> named addressee or an authorized designee, you may not copy or use it,
> or disclose it to anyone else. If you received it in error please notify
> us immediately and then destroy it.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
> The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/
> 
> 
> 
> The contents of this e-mail are intended for the named addressee only. It
> contains information that may be confidential. Unless you are the named
> addressee or an authorized designee, you may not copy or use it, or
> disclose it to anyone else. If you received it in error please notify us
> immediately and then destroy it.
[Tahir Akhtar] 
Wassalam



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List:     http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta Poi Project:  http://jakarta.apache.org/poi/

Reply via email to