Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将上传的Excel文件中的数据存储在数据库中_Java_Excel_Jsp - Fatal编程技术网

Java 将上传的Excel文件中的数据存储在数据库中

Java 将上传的Excel文件中的数据存储在数据库中,java,excel,jsp,Java,Excel,Jsp,我有一个代码,可以通过读取Excel文件并将其存储在数据库中来处理上传Excel文件的操作。代码如下,它正在编译,但给出了一个错误 请参阅下面的代码: 上传时间表 0) { %> Excel文件中的以下详细信息已插入数据库的学生表中 受试者ID 主题名称 官能 日期 时间 等级 以下是错误的堆栈跟踪: org.apache.jasper.JasperException: An exception occurred processing JSP page /admin_tim

我有一个代码,可以通过读取Excel文件并将其存储在数据库中来处理上传Excel文件的操作。代码如下,它正在编译,但给出了一个错误

请参阅下面的代码:


上传时间表 0) { %> Excel文件中的以下详细信息已插入数据库的学生表中 受试者ID 主题名称 官能 日期 时间 等级
以下是错误的堆栈跟踪:

org.apache.jasper.JasperException: An exception occurred processing JSP page /admin_timetable_upload.jsp at line 80

77: for (int i=1;i < dataHolder.size(); i++) 
78: {  
79:         System.out.println("dataHolder.size()="+dataHolder.get(i));
80:        cellStoreArrayList=(ArrayList)dataHolder.get(i);  
81:         ps.setString(1,((HSSFCell)cellStoreArrayList.get(0)).toString());  
82:         ps.setString(2,((HSSFCell)cellStoreArrayList.get(1)).toString());  
83:         ps.setString(3,((HSSFCell)cellStoreArrayList.get(2)).toString());


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    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)
root cause

java.lang.ClassCastException: org.apache.poi.hssf.usermodel.HSSFCell cannot be cast to java.util.ArrayList
    org.apache.jsp.admin_005ftimetable_005fupload_jsp._jspService(admin_005ftimetable_005fupload_jsp.java:199)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    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.jasper.JasperException:在第80行处理JSP页面/admin\u timeline\u upload.JSP时发生异常
77:for(int i=1;i

如何解决此问题?

您不需要强制执行此操作:

cellStoreArrayList = (ArrayList) dataHolder.get(i);
在ArrayList中,它已经返回一个HSSFCell,因此您只需执行以下操作:

HSSFCell cell = dataHolder.get(i);

为什么在声明
PreparedStatement ps
变量之前要使用它?它是在readExcelFile中声明的,在使用ps变量之前调用readExcelFile