Note to self: RTFM !!

Thanks, that worked!

-----Original Message-----
From: Andrew C. Oliver [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, August 13, 2002 11:16 AM
To: POI Users List
Subject: Re: Sending workbook as a mail attachment


http://jakarta.apache.org/poi/javadocs/org/apache/poi/hssf/usermodel/HSS
FWorkbook.html#getBytes()

"Method getBytes - get the bytes of just the HSSF portions of the XLS 
file. Use this to construct a POI POIFSFileSystem yourself."

Meaning you're getting ONLY the "Workbook" steam in the XLS file. You'd 
need to use POIFS to create a whole XLS file.

To do what you're attempting, construct an output stream, pass it to 
HSSFWorkbook.write(OutputStream), read the output stream into a byte 
array and construct an input stream around that.

Does that help?

-Andy

Anil Komareddi wrote:

>       I'm trying to generate an excel spreadsheet and then email it as
an 
>attachment. The generation part works fine. I can save this to a file 
>and view it. I can attach an existing spreadsheet file to an email and 
>send it and it goes out ok. The problem is when I try to generate the 
>spreadsheet and attach it without saving it first.
>
>       This is what I'm doing:
>
>       1. Generate the workbook
>       2. Get the data byte array from the workbook using
>HSSFWorkbook.getBytes()
>       3. Prepare a javax.activation.Datasource using this byte array
where 
>the getInputStream method is as follows:
>
>           public InputStream getInputStream()
>                                      throws IOException
>           {
>               if (_data == null)
>               {
>                   throw new IOException("no data");
>               }
>
>               return new ByteArrayInputStream(_data);
>           }
>
>       4. The emailer code itself, looks like this:
>
>               byte[]        data       = handler.getExcelBytes();
>               XLSDataSource dataSource = new XLSDataSource(data);
>               try
>               {
>
>                   MimeBodyPart bodyPart = new MimeBodyPart();
>                   bodyPart.setHeader("Content-Disposition", 
>                                      "attachment;filename=" +
filename);
>                   bodyPart.setHeader("Content-Type",
>"application/x-excel");
>                   bodyPart.setDataHandler(new
>DataHandler(dataSource));
>                   bodyPart.setFileName(filename);
>
>                    String to = "[EMAIL PROTECTED]";
>                    String from = "[EMAIL PROTECTED]";
>                    String host = "";
>                    String msgText1 = "Sending an xls attachment.\n";
>                    String subject = "xls test";
>
>                   Properties props = System.getProperties();
>                   props.put("mail.smtp.host", host);
>
>                   Session session = Session.getDefaultInstance(props,
null);
>
>                   MimeMessage msg = new MimeMessage(session);
>                   msg.setFrom(new InternetAddress(from));
>                   InternetAddress[] address = {new
InternetAddress(to)};
>                   msg.setRecipients(Message.RecipientType.TO,
>address);
>                   msg.setSubject(subject);
>
>                   MimeBodyPart mbp1 = new MimeBodyPart();
>                   mbp1.setText(msgText1);
>
>                   Multipart mp = new MimeMultipart();
>                   mp.addBodyPart(mbp1);
>                   msg.setContent(mp);
>                   msg.setSentDate(new Date());
>                   Transport.send(msg);
>
>               } catch (MessagingException mex) {
>                 mex.printStackTrace();
>               }
>
>
>       Now this code works fine to some extent in that the email goes
through 
>with the Excel attachment. When I open the attachment in Excel XP/2002,

>the spreadsheet opens fine and all the data is there, but I get an 
>error dialog which says:
>
>       -----------
>       Microsoft Excel File Repair Log
>
>       Errors were detected in file 'C:\Documents and
Settings\anil\Local 
>Settings\Temporary Internet Files\OLKA9\attach.xls'
>       The following is a list of repairs:
>
>       Lost document summary information.
>       -----------
>
>       If I try to open the attachment in any previous version of Excel
or 
>StarOffice, it opens a blank workbook.
>
>       Hope this helps to provide enough information on the problem.
>
>       Thanks,
>       Anil Kommareddi
>                
>
>
>  
>




--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to