Hi all,
I need some pointers/help with creating an .xls file for download from a
servlet container.
Specifically, I have a struts2 project running inside Tomcat 5.5. And
I'm using POI 3.5-beta6.
I am able to use POI to create a workbook and fill it with data. The
problem is after I download the file, the binary header doesn't match
the expected: D0 CF 11 E0 A1 B1 1A E1 signature.
Instead, I get: 09 08 10 00 00 06 05 00 D3 10 CC 07 41 ...
I'm definitely getting a binary file. When I open the file using MS
Excel 2003 SP2, it goes into file recovery mode telling me the file is
damaged beyond repair, etc. After I click "Don't Send" a couple times on
the error dialogs, my data is there, although without the formatting
(Date values look like numbers).
I have one immediate concern: All of the examples use wb.write(fileOut),
however, AFAIK, that's not the way for writing data out of a servlet
container for download. I'm familiar with creating an InputStream for a
file download.
I've included a basic execute() method from my action which demonstrates
how I export the data to the user for download. Is this causing the
malformed file? How do I get the workbook bytes[] into an InputStream
properly?
Thanks in advance,
Abe
==
I have an action class with an execute() method as follows:
public String execute() throws Exception {
Workbook workbook = new HSSFWorkbook();
Sheet s = workbook.createSheet("sheet");
Row r = s.createRow(0);
Cell c = r.createCell(0);
c.setCellValue("hello world");
ByteArrayInputStream bais =
new ByteArrayInputStream(
((HSSFWorkbook) workbook).getBytes());
inputStream = bais;
return SUCCESS;
}
and the necessary getter for inputStream.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]