您的位置 首页 java

06,SpringMVC项目导入wps表格文件

(1),jar包依赖

         <!--POI 相关jar start -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>${poi.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>${poi.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-examples</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <!--POI 相关jar end -->

        <dependency>
            <groupId>commons- File upload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.2</version>
        </dependency>
  

(2),multipartResolver配置bean

 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"></property>
<!--上传文件上限单位字节,10M-->
<property name="maxUploadSize" value="10485760"></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>  

(3),选择上传 wps 表格模板文件的 jsp 页面

 注意此行不是代码: 这是跳转本页的链接

<%@ taglib prefix="form" uri="#34; %>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="#34; prefix="c"%>

<%
     String  path =  Request .getContextPath();
    String contextPath = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <base href="<%=basePath%>">
    <title></title>
</head>
<body>
    <form action="<%=contextPath %>/studentConter/importExcelFile" method="post" enctype="multipart/form-data">
        请选择要导入的excel模板文件:<input type="file" value="请选择" name="upFileName" />
        <input type="submit" value="导入" />
    </form>
</body>
< script  type="text/javascript">
</script>
</html>  

(4),后端java代码解析表格文件内容

 import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind. annotation .*;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io. InputStream ;
/**
* @date: 2022/10/30 07:12
* @desc: 测试控制类
*/@Controller
@RequestMapping(value = "/studentConter")
public class StudentController {
@RequestMapping(value = "/importExcelFile", method = RequestMethod.POST, produces = "text/html; charset =UTF-8" )
public String importExcelFile(@RequestParam(value = "upFileName", required = true) CommonsMultipartFile commonsMultipartFile ) {
    // 读取文件内容
    String upFileName = commonsMultipartFile.getOriginalFilename();
    System.out.println("导入的文件名称:"+ upFileName);
    try {
        readExcelFile(upFileName, commonsMultipartFile.getInputStream());
    } catch ( Exception  e1) {
        e1.printStackTrace();
    }
    return "";
}

// 读取文件内容
private  void  readExcelFile(String fileName, InputStream excelInStream) throws Exception {
    XSSFWorkbook xssfWorkbook = new XSSFWorkbook(excelInStream);
    int sheetSize = xssfWorkbook.getNumberOf sheet s();
    for (int sheetIdx = 0; sheetIdx < sheetSize; sheetIdx++) {
        XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(sheetIdx);
        if (xssfSheet == null || xssfSheet.getLastRowNum() == 0)
            continue;
        // 循环sheet选项中的行
        for(int rowIdx = 0; rowIdx < xssfSheet.getLastRowNum(); rowIdx++) {
            System.out.println("开始输出表格行中的数据:");
            forHssfRow(xssfSheet.getRow(rowIdx));
        }
    }
}
// 在表格行中循环列格
private void forHssfRow(XSSFRow xssfRow) {
    int minColIdx = xssfRow.getFirstCellNum();
    int maxColIdx = xssfRow.getLastCellNum();
    for (int colIdx = minColIdx; colIdx < maxColIdx; colIdx++) {
        XSSFCell xssfCell = xssfRow.getCell(colIdx);
        if(xssfCell == null)
            continue;
        System.out.println("单元内容:"+ getStringVal(xssfCell));
    }
}
private String getStringVal(XSSFCell xssfCell) {
    switch (xssfCell.getCellType()) {
        case Cell.CELL_TYPE_ Boolean  :
            return xssfCell.getBooleanCellValue() ?"true":"false";
        case Cell.CELL_TYPE_FORMULA :
            return xssfCell.getCellFormula();
        case Cell.CELL_TYPE_NUMERIC :
            xssfCell.setCellType(Cell.CELL_TYPE_STRING);
            return xssfCell.getStringCellValue();
        case Cell.CELL_TYPE_STRING :
            return xssfCell.getStringCellValue();
        default :
            return "";
    }
}

}  

文章来源:智云一二三科技

文章标题:06,SpringMVC项目导入wps表格文件

文章地址:https://www.zhihuclub.com/189752.shtml

关于作者: 智云科技

热门文章

网站地图