簡體   English   中英

如何使用JSP從客戶端讀取excel文件並處理數據而不進行存儲

[英]How to read excel file from client using JSP and process data without storing

我有一個JSP表單,其中包含文本字段以及文件輸入。 我想知道處理表單驗證/處理的方法。 由於表單具有文件輸入,因此它是多部分表單,因此我將像下面那樣分別檢查文件

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        for (FileItem item : items) {
            if (item.isFormField()) {
                // Process regular form field (input type="text|radio|checkbox|etc", select, etc).
                String fieldname = item.getFieldName();
                String fieldvalue = item.getString();
                // ... (do your job here)
            } else {
                // Process form file field (input type="file").
                String fieldname = item.getFieldName();
                String filename = FilenameUtils.getName(item.getName());
                InputStream filecontent = item.getInputStream();
                // ... (do your job here)
            }
        }
    } catch (FileUploadException e) {
        throw new ServletException("Cannot parse multipart request.", e);
    }

    // ...
}

(從這里拍攝)。

但是,我的問題是如何處理文件(例如excel文件)而不存儲它,而只是使用POI XSSF直接將電子表格數據處理到地圖中(因為FileInput查找存儲的文件路徑)? 另外,如何將servlet上方的局部變量/映射傳遞回jsp頁面?

基本上,我希望允許用戶填寫表單並選擇一個excel文件進​​行處理,並且希望在同一jsp上的servlet中進行驗證后顯示結果,而無需刷新jsp(例如在表單下方顯示結果?

您可以像這樣直接從InputStream中讀取電子表格

InputStream filecontent = item.getInputStream();
XSSFWorkbook wb = new XSSFWorkbook(filecontent);
// get first worksheet
XSSFSheet sheet = wb.getSheetAt(0);
// get cell at top left
System.out.println(sheet.getRow(0).getCell(0).getStringCellValue());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM