简体   繁体   English

如何将Excel工作表中的数据导出到jsp页面?

[英]How to get the data from Excel sheet into out jsp page?

I tried to read an excel file and display it in a jsp page, i use this code below but it get an error message.我试图读取一个 excel 文件并将其显示在一个 jsp 页面中,我使用下面的这段代码,但它收到一条错误消息。

Code:代码:

<%@page import="org.apache.poi.hssf.usermodel.HSSFSheet"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFRow"%>
<%@page import="org.apache.poi.hssf.usermodel.HSSFCell"%>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<html>
<table border="1">
<%
 short a=0;
  short b=1;
  short c=2;
  short d=3;
  int i=0;
   String   value1="", value2="",value3=" ", value4="";
    String filename ="a.xlsx"; 
    if (filename != null && !filename.equals("")) {
    try{
    FileInputStream fs =new FileInputStream(filename);
    HSSFWorkbook wb = new HSSFWorkbook(fs);
    for (int k = 0; k < wb.getNumberOfSheets(); k++){
    int j=i+1;
    HSSFSheet sheet = wb.getSheetAt(k);
    int rows  = sheet.getPhysicalNumberOfRows();
    for (int r = 0; r < rows; r++){
    HSSFRow row   = sheet.getRow(r);
    int     cells = row.getPhysicalNumberOfCells(); 
    out.write("<br>");
    HSSFCell cell1  = row.getCell(a);
      value1 = cell1.getStringCellValue();
      HSSFCell cell2  = row.getCell(b);
        value2 = cell2.getStringCellValue();
         HSSFCell cell3  = row.getCell(c);
         value3 = cell3.getStringCellValue();
          HSSFCell cell4  = row.getCell(d);
          value4 = cell4.getStringCellValue();
    %>
    <tr><td><%=value1%></td><td><%=value2%></td><td><%=value3%></td><td><%=value4%></td></tr>
    <%
    }
        i++;
    }
    }
    catch(Exception e){
        System.out.println(e);
    }
    }
    %>
    </table>
    </html>

Error message错误信息

HTTP Status 500 - Unable to compile class for JSP: type Exception report message Unable to compile class for JSP: description The server encountered an internal error that prevented it from fulfilling this request. HTTP 状态 500 - 无法为 JSP 编译类:类型 异常报告消息无法为 JSP 编译类:描述 服务器遇到内部错误,无法完成此请求。 exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [14] in the generated java file: [C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst.server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org\\apache\\jsp\\index_jsp.java] Only a type can be imported.异常 org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [14] in the generated java file: [C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst .server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org\\apache\\jsp\\index_jsp.java] 只能导入一个类型。 org.apache.poi.hssf.usermodel.HSSFSheet resolves to a package org.apache.poi.hssf.usermodel.HSSFSheet 解析为一个包

An error occurred at line: [15] in the generated java file: [C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst.server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org\\apache\\jsp\\index_jsp.java] Only a type can be imported.生成的java文件中的第[15]行发生错误:[C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst.server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org \\apache\\jsp\\index_jsp.java] 只能导入一个类型。 org.apache.poi.hssf.usermodel.HSSFWorkbook resolves to a package An error occurred at line: [16] in the generated java file: [C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst.server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org\\apache\\jsp\\index_jsp.java] Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFWorkbook 解析为一个包在生成的 java 文件中的第 [16] 行发生错误:[C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst。 server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org\\apache\\jsp\\index_jsp.java] 只能导入一个类型。 org.apache.poi.hssf.usermodel.HSSFRow resolves to a package An error occurred at line: [17] in the generated java file: [C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst.server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org\\apache\\jsp\\index_jsp.java] Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFRow 解析为一个包在生成的 java 文件中的第 [17] 行发生错误:[C:\\Users\\Vu\\workspace.metadata.plugins\\org.eclipse.wst。 server.core\\tmp0\\work\\Catalina\\localhost\\jpsexcel\\org\\apache\\jsp\\index_jsp.java] 只能导入一个类型。 org.apache.poi.hssf.usermodel.HSSFCell resolves to a package An error occurred at line: 20 in the jsp file: /index.jsp HSSFWorkbook cannot be resolved to a type 17: if (filename != null && !filename.equals("")) { 18: try{ 19: org.apache.poi.hssf.usermodel.HSSFCell 解析为一个包在 jsp 文件中的第 20 行发生错误:/index.jsp HSSFWorkbook 无法解析为类型 17:if (filename != null && !filename.等于(“”)){18:尝试{19:
FileInputStream fs =new FileInputStream(filename); FileInputStream fs =new FileInputStream(filename); 20: 20:
HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFWorkbook wb = 新的 HSSFWorkbook(fs); 21: for (int k = 0; k < wb.getNumberOfSheets(); k++){ 22: int j=i+1; 21: for (int k = 0; k < wb.getNumberOfSheets(); k++){ 22: int j=i+1; 23: HSSFSheet sheet = wb.getSheetAt(k); 23: HSSFSheet sheet = wb.getSheetAt(k); An error occurred at line: 20 in the jsp file: /index.jsp HSSFWorkbook cannot be resolved to a type 17: if (filename != null && !filename.equals("")) { 18: try{ 19:在 jsp 文件中的第 20 行发生错误:/index.jsp HSSFWorkbook 无法解析为类型 17: if (filename != null && !filename.equals("")) { 18: try{ 19:
FileInputStream fs =new FileInputStream(filename); FileInputStream fs =new FileInputStream(filename); 20: 20:
HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFWorkbook wb = 新的 HSSFWorkbook(fs); 21: for (int k = 0; k < wb.getNumberOfSheets(); k++){ 22: int j=i+1; 21: for (int k = 0; k < wb.getNumberOfSheets(); k++){ 22: int j=i+1; 23: HSSFSheet sheet = wb.getSheetAt(k); 23: HSSFSheet sheet = wb.getSheetAt(k);

An error occurred at line: 23 in the jsp file: /index.jsp HSSFSheet cannot be resolved to a type 20: HSSFWorkbook wb = new HSSFWorkbook(fs);在 jsp 文件中的第 23 行发生错误:/index.jsp HSSFSheet 无法解析为类型 20:HSSFWorkbook wb = new HSSFWorkbook(fs); 21: for (int k = 0; k < wb.getNumberOfSheets(); k++){ 22: int j=i+1; 21: for (int k = 0; k < wb.getNumberOfSheets(); k++){ 22: int j=i+1; 23: HSSFSheet sheet = wb.getSheetAt(k); 23: HSSFSheet sheet = wb.getSheetAt(k); 24: int rows = sheet.getPhysicalNumberOfRows(); 24: int 行 = sheet.getPhysicalNumberOfRows(); 25: for (int r = 0; r < rows; r++){ 26: HSSFRow row = sheet.getRow(r); 25: for (int r = 0; r < rows; r++){ 26: HSSFRow row = sheet.getRow(r); An error occurred at line: 26 in the jsp file: /index.jsp HSSFRow cannot be resolved to a type 23: HSSFSheet sheet = wb.getSheetAt(k); jsp 文件中第 26 行发生错误:/index.jsp HSSFRow 无法解析为类型 23:HSSFSheet sheet = wb.getSheetAt(k); 24: int rows = sheet.getPhysicalNumberOfRows(); 24: int 行 = sheet.getPhysicalNumberOfRows(); 25: for (int r = 0; r < rows; r++){ 26: HSSFRow row = sheet.getRow(r); 25: for (int r = 0; r < rows; r++){ 26: HSSFRow row = sheet.getRow(r); 27: int 27:整数
cells = row.getPhysicalNumberOfCells();单元格 = row.getPhysicalNumberOfCells(); 28: out.write(" 28: 输出.write("
"); 29: HSSFCell cell1 = row.getCell(a); "); 29: HSSFCell cell1 = row.getCell(a);

An error occurred at line: 29 in the jsp file: /index.jsp HSSFCell cannot be resolved to a type 26: HSSFRow row = sheet.getRow(r); jsp 文件中第 29 行发生错误:/index.jsp HSSFCell 无法解析为类型 26:HSSFRow row = sheet.getRow(r); 27: int cells = row.getPhysicalNumberOfCells(); 27: int cell = row.getPhysicalNumberOfCells(); 28: 28:
out.write("写出(“
"); 29: HSSFCell cell1 = row.getCell(a); 30: "); 29: HSSFCell cell1 = row.getCell(a); 30:
value1 = cell1.getStringCellValue(); value1 = cell1.getStringCellValue(); 31: HSSFCell cell2 = row.getCell(b); 31: HSSFCell cell2 = row.getCell(b); 32: value2 = cell2.getStringCellValue(); 32: value2 = cell2.getStringCellValue(); An error occurred at line: 31 in the jsp file: /index.jsp HSSFCell cannot be resolved to a type 28: out.write("在 jsp 文件中的第 31 行发生错误:/index.jsp HSSFCell 无法解析为类型 28:out.write("
"); 29: HSSFCell cell1 = row.getCell(a); 30: value1 = cell1.getStringCellValue(); 31: HSSFCell cell2 = row.getCell(b); 32: value2 = cell2.getStringCellValue(); 33: "); 29: HSSFCell cell1 = row.getCell(a); 30: value1 = cell1.getStringCellValue(); 31: HSSFCell cell2 = row.getCell(b); 32: value2 = cell2.getStringCellValue(); 33:
HSSFCell cell3 = row.getCell(c); HSSFCell cell3 = row.getCell(c); 34: value3 = cell3.getStringCellValue(); 34: value3 = cell3.getStringCellValue(); An error occurred at line: 33 in the jsp file: /index.jsp HSSFCell cannot be resolved to a type 30:在 jsp 文件中的第 33 行发生错误:/index.jsp HSSFCell 无法解析为类型 30:
value1 = cell1.getStringCellValue(); value1 = cell1.getStringCellValue(); 31: HSSFCell cell2 = row.getCell(b); 31: HSSFCell cell2 = row.getCell(b); 32: value2 = cell2.getStringCellValue(); 32: value2 = cell2.getStringCellValue(); 33: 33:
HSSFCell cell3 = row.getCell(c); HSSFCell cell3 = row.getCell(c); 34: value3 = cell3.getStringCellValue(); 34: value3 = cell3.getStringCellValue(); 35: HSSFCell cell4 = row.getCell(d); 35: HSSFCell cell4 = row.getCell(d); 36: value4 = cell4.getStringCellValue(); 36: value4 = cell4.getStringCellValue();

An error occurred at line: 35 in the jsp file: /index.jsp HSSFCell cannot be resolved to a type 32: value2 = cell2.getStringCellValue(); jsp 文件中第 35 行发生错误:/index.jsp HSSFCell 无法解析为类型 32:value2 = cell2.getStringCellValue(); 33: HSSFCell cell3 = row.getCell(c); 33: HSSFCell cell3 = row.getCell(c); 34: value3 = cell3.getStringCellValue(); 34: value3 = cell3.getStringCellValue(); 35: HSSFCell cell4 = row.getCell(d); 35: HSSFCell cell4 = row.getCell(d); 36: value4 = cell4.getStringCellValue(); 36: value4 = cell4.getStringCellValue(); 37: %> 38: 37:%> 38:
<%=value1%><%=value2%><%=value3%><%=value4%> Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450) org.apache.jasper.compiler.Compiler.compile(Compiler.java:361) org.apache.jasper.compiler.Compiler.compile(Compiler.java:336) org.apache.jasper.compiler.Compiler.compile(Compiler.java:323) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) <%=value1%><%=value2%><%=value3%><%=value4%> 堆栈跟踪:org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) org.apache.jasper。 compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450) org.apache.jasper.compiler.Compiler.compile(Compiler.java:361) org. apache.jasper.compiler.Compiler.compile(Compiler.java:336) org.apache.jasper.compiler.Compiler.compile(Compiler.java:323) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet. java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

note The full stack trace of the root cause is available in the Apache Tomcat/8.0.26 logs. note Apache Tomcat/8.0.26 日志中提供了根本原因的完整堆栈跟踪。

Upload+ read an excel file in a jsp using POI 上传+使用POI读取jsp中的excel文件

You can check this issue for read data from excel file with jsp.您可以检查此问题以使用 jsp 从 excel 文件中读取数据。

İf I were you I'll research how to handle excel sheet with jsp and handle it.如果我是你,我会研究如何用jsp处理excel表并处理它。 After that I create backend java object for read data from sheet and send the sheet from jsp to backend java object.之后,我创建后端 java 对象以从工作表读取数据并将工作表从 jsp 发送到后端 java 对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM