Hi,
I am new to POI. I am trying to upload an excel sheet and read it using POI.
My html code is:
<form name="frmNTest" enctype="MULTIPART/FORM-DATA" method="post"
action="test.jsp">
<input type=hidden name=hfrmID value="frmTest">
<input type=hidden name=hfrmActionID value="uploadFiletoServer">
<table width="98%" border=0>
<tr>
<td>Select File</td>
<td><input type="file" name="updfilename">
</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name=Submit value="Upload">
</div></td>
</tr>
</table>
**************************
My server side code is: (test.jsp)
<%
UploadFile up = new UploadFile();
up.doUpload(request,response);
%>
********************************
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletInputStream;
import org.apache.poi.hssf.util.*;
import org.apache.poi.hssf.eventmodel.*;
import org.apache.poi.hssf.eventusermodel.*;
import org.apache.poi.hssf.dev.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.*;
import java.io.FileInputStream;
import java.io.InputStream;
public class UploadFile {
public void doUpload(HttpServletRequest request, HttpServletResponse response)
throws IOException
{
try
{
ServletInputStream is = request.getInputStream();
InputStream ins = (InputStream)is;
POIFSFileSystem fs = new POIFSFileSystem(ins);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = sheet.getRow(1);
HSSFCell cell = row.getCell((short)0);
String c1 = cell.getStringCellValue();
}
catch(IOException io)
{
LCMLogger.log("io error = " + io.toString());
}
}
}
*******************
I am getting the following exception:
java.io.IOException: Invalid header signature; read 3255307777713450285,
expected -2226271756974174256
**********************
If I hard copy the filename instead as below, then the code works fine and I
can read the cell contents.
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("Test.xls"));
Please can anyone help me in this matter? Why doesn't the POIFSFileSystem
object get created when I pass an input stream to it?
thanks, AN