将零件转换为文件并读取Excel文件

时间:2016-03-22 19:39:18

标签: java excel servlets

我正在将一个excel文件上传到servlet并尝试读取其内容。我能够上传文件并将其发送到servlet。在servlet上,我可以将上传作为一个部分并正确读取其名称,文件大小和内容类型。但是如何使用此“Part”作为文件读取?

我正在尝试使用POI来读取Excel文件。它需要我传入一个文件,因此我传入'Part'并将其作为文件投射。在运行时,它返回一个异常,告诉我不允许强制转换。

我没有看到request.getFile选项。反正有没有把这部分变成文件?或者另一种请求文件而不是Part的方法。请指教。

 <!-- HTML -->
    <form method="post" action="MyServlet" enctype="multipart/form-data">
        <input type="file" name="file" id="file">
        <button type="submit">Send</button>
    </form>

    //Servlet
public class ExcelUploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException, IOException {

        Part filePart = request.getPart("file");

        if (filePart != null) {
            // These prints out the correct data
            System.out.println(filePart.getName());
            System.out.println(filePart.getSize());
            System.out.println(filePart.getContentType());
        }


        //Need to read excel file as follows  but how do I call the filepart here? 
        FileInputStream fis  = new FileInputStream((File)filePart);//cast doesn't work
        HSSFWorkbook wb  = new HSSFWorkbook(fis);
        HSSFSheet sheet = wb.getSheetAt(0);
        for(Row row : sheet){
            for (Cell cell : row){
                System.out.println(cell.getStringCellValue());
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

也许使用getInputStream:

HSSFWorkbook wb  = new HSSFWorkbook(filePart.getInputStream());

未尝试,但此方法位于Part。

的界面中

答案 1 :(得分:-1)

**这需要的罐子是:     COS-multipart.jar,     杰克逊的注解-2.2.3.jar,     杰克逊核心-2.2.3.jar,     杰克逊 - 数据绑定-2.2.3.jar,     POI-3.9.jar,     其中 fileUploader 是视图中fileupload控件的名称。**

i

响应将包含上传文件的json格式。