我正在尝试在JSP上实现Apache POI以读取excel文件并获取某些单元格的值并将其显示在我页面上的输入上。但是我收到了这个错误:
type Exception report
message Unable to compile class for JSP:
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 16 in the jsp file: /helloWorld.jsp
HSSFWorkbook cannot be resolved to a type
13: <body>
14:
15: <%
16: HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("excel.xls"));
17: HSSFSheet sheet = workbook.getSheetAt(0);
18: HSSFRow row = sheet.getRow(1);
19: double Something,Something1,Something2,Something3,Something4;
An error occurred at line: 17 in the jsp file: /helloWorld.jsp
HSSFSheet cannot be resolved to a type
14:
15: <%
16: HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("excel.xls"));
17: HSSFSheet sheet = workbook.getSheetAt(0);
18: HSSFRow row = sheet.getRow(1);
19: double Something,Something1,Something2,Something3,Something4;
An error occurred at line: 18 in the jsp file: /helloWorld.jsp
HSSFRow cannot be resolved to a type
15: <%
16: HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("excel.xls"));
17: HSSFSheet sheet = workbook.getSheetAt(0);
18: HSSFRow row = sheet.getRow(1);
19: double Something,Something1,Something2,Something3,Something4;
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:490)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:662)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
这是我在.jsp文件中的代码:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="org.apache.poi.hssf.usermodel.*"%>
<%@ page import="java.io.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>
<body>
<%
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("excel.xls"));
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFRow row = sheet.getRow(1);
double Something,Something1,Something2,Something3,Something4;
Something= row.getCell(0).getNumericCellValue();
Something1= row.getCell(1).getNumericCellValue();
Something2= row.getCell(2).getNumericCellValue();
Something3= row.getCell(3).getNumericCellValue();
Something4= row.getCell(4).getNumericCellValue();
%>
<div>
<table>
<tr>
<td>Something: </td>
<td><input type="text" value="<% Something %>"></td>
</tr>
<tr>
<td>Something1: </td>
<td><input type="text" value="<% Something1 %>"></td>
</tr>
<tr>
<td>Something2: </td>
<td><input type="text" value="<% Something2 %>"></td>
</tr>
<tr>
<td>Something3: </td>
<td> <input type="text" value="<% Something3 %>"></td>
</tr>
<tr>
<td>Something4: </td>
<td><input type="text" value="<% Something4 %>"></td>
</tr>
</table>
</div>
</body>
</html>
我已经添加了所需的jar文件。
修改 一开始导入就像这样:
<%@ page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%@ page import="org.apache.poi.hssf.usermodel.HSSFSheet"%>
<%@ page import="org.apache.poi.hssf.usermodel.HSSFRow"%>
但它把这个错误抛到了开头显示的错误之上:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [14] in the generated java file: [C:\apache-tomcat-7.0.70\apache-tomcat-7.0.70\work\Catalina\localhost\HelloWorldJSP\org\apache\jsp\helloWorld_jsp.java]
Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFWorkbook resolves to a package
An error occurred at line: [15] in the generated java file: [C:\apache-tomcat-7.0.70\apache-tomcat-7.0.70\work\Catalina\localhost\HelloWorldJSP\org\apache\jsp\helloWorld_jsp.java]
Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFSheet resolves to a package
An error occurred at line: [16] in the generated java file: [C:\apache-tomcat-7.0.70\apache-tomcat-7.0.70\work\Catalina\localhost\HelloWorldJSP\org\apache\jsp\helloWorld_jsp.java]
Only a type can be imported. org.apache.poi.hssf.usermodel.HSSFRow resolves to a package
答案 0 :(得分:0)
首先,您必须验证导出的war文件中是否有poi.jar
文件?如果它不在那里,那么尝试重建你的战争。
如果是,请尝试这个
使用像这样的指定导入语句......
<%@ page import="org.apache.poi.hssf.usermodel.* ,java.io.*"%>
而不是
<%@ page import="org.apache.poi.hssf.usermodel.*"%>
<%@ page import="java.io.*" %>
进行操作
因为错误堆栈跟踪显示错误
HSSFWorkbook cannot be resolved to a type //won't be able to find class HSSFWorkbook in library.
无法将类解析为类型,特定类不是 可以在你的战争库中找到。