Maven依赖

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>

上传界面

<%--
Created by IntelliJ IDEA.
User: 羡羡
Date: 2021/7/15
Time: 10:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="FileServlet" method="post" enctype="multipart/form-data">
<input type="file" name="wj"/>
<button type="submit">上传</button>
</form>
</body>
</html>

dao层

package com.dao;
import com.enetity.Test;
import java.sql.SQLException;
/**
* @author 羡羡
*/
public interface TestDao {
public int add(Test te) throws SQLException;
}

daoimpl层

package com.dao.impl;
import com.dao.TestDao;
import com.enetity.Test;
import com.utils.JDBCTool;
import org.apache.commons.dbutils.QueryRunner;
import java.sql.Connection;
import java.sql.SQLException;
/**
* @author 羡羡
*/
public class TestDaoimpl implements TestDao {
QueryRunner runner=new QueryRunner();
@Override
public int add(Test te) throws SQLException {
String se="insert into test (sname,sset,age) value(?,?,?)";
Connection conn= JDBCTool.openconn();
Object obj[]=new Object[3];
obj[0]=te.getName();
obj[1]=te.getSet();
obj[2]=te.getAge();
int ad=runner.update(conn,se,obj);
return ad;
}
}

entity实体类

package com.enetity;
public class Test {
public int id;
public String sname;
public String sset;
public String age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return sname;
}
public void setName(String name) {
this.sname = name;
}
public String getSet() {
return sset;
}
public void setSet(String set) {
this.sset = set;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Test() {
}
public Test(String name, String set, String age) {
this.sname = name;
this.sset = set;
this.age = age;
}
public Test(int id, String name, String set, String age) {
this.id = id;
this.sname = name;
this.sset = set;
this.age = age;
}
@Override
public String toString() {
return "Test{" +
"id=" + id +
", name='" + sname + '\'' +
", set='" + sset + '\'' +
", age=" + age +
'}';
}
}

上传servlet

package com.servlet;
import com.it.CosFileupload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* @author 羡羡
*/
@WebServlet("/FileServlet")
public class FileServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//工厂
DiskFileItemFactory factory=new DiskFileItemFactory();
//Servlet 文件上传
ServletFileUpload upload=new ServletFileUpload(factory);
//文件名乱码
upload.setHeaderEncoding("UTF-8");
try {
List<FileItem> list=upload.parseRequest(request);
for(FileItem fi:list){
//判断是否文件和文字
if(fi.isFormField()){
System.out.println("文件名:"+fi.getFieldName()+" "+fi.getString("UTF-8"));
}else{
long ti=System.currentTimeMillis();
int wz=fi.getName().lastIndexOf(".");
String filna=fi.getName().substring(wz+1);
System.out.println("后缀名:"+filna);
//图片名字设置时间戳
String pna=ti+"."+filna;
System.out.println("图片名:"+pna);
InputStream in=fi.getInputStream();
CosFileupload.upfile(in,pna);
request.setAttribute("filna",pna);
request.getRequestDispatcher("ReadExeclServlet").forward(request,response);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}

读取Servlet

package com.servlet;
import com.dao.impl.TestDaoimpl;
import com.enetity.Test;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.sql.SQLException;
@WebServlet("/ReadExeclServlet")
public class ReadExeclServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
TestDaoimpl te=new TestDaoimpl();
//得到文件的名字
String fna= (String) request.getAttribute("filna");
String path="https://sls-cloudfunction-ap-guangzhou-code-1301165591.cos.ap-guangzhou.myqcloud.com/"+fna;
URL u = new URL(path);
InputStream inpu=u.openStream();
Workbook work= WorkbookFactory.create(inpu);
Sheet sheet=work.getSheetAt(0);
//得到行数
int rows=sheet.getPhysicalNumberOfRows();
Row row=sheet.getRow(0);
//得到列数
int cols=row.getPhysicalNumberOfCells();
System.out.println("行数:"+rows+" "+"列数:"+cols);
for(int i=1;i<rows;i++){
row=sheet.getRow(i);
String name=row.getCell(0).toString();
String set=row.getCell(1).toString();
String ag=row.getCell(2).toString();
Test tes=new Test(name,set,ag);
try {
int ad=te.add(tes);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
response.sendRedirect("Sug.jsp");
}
}