MultipartFile轉File/HSSFWorkbook

原文鏈接:MultipartFile轉File/HSSFWorkbook
在業務開發中遇見,通過上傳Excel文件,解析並生成對應的數據。

1、什麼是HttpServletRequest?

答:HttpServletResponse繼承了ServletResponse接口,並提供了與Http協議有關的方法。

2、什麼是MultipartFile?

答:MultipartFile是spring類型,代表HTML中form data方式上傳的文件,包含二進制數據+文件名稱。
3、引入文件包

import javax.servlet.http.HttpServletRequest;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

4、轉換類型

1、HttpServletRequest轉MultipartHttpServletRequest
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

2、MultipartHttpServletRequest轉Map<String, MultipartFile>
Map<String, MultipartFile>fileMap =multipartRequest.getFileMap();

3、fileMap轉MultipartFile
for(Map.Entry<String, MultipartFile> entity :fileMap.entrySet()){
    MultipartFile multipartFile = entity.getValue();
}

4、MultipartFile轉file File
file =new File(multipartFile.getOriginalFilename());

5、MultipartFile轉HSSFWorkbook HSSFWorkbook
workbook =new HSSFWorkbook(new POIFSFileSystem(multipartFile.getInputStream()));

以下連續記錄數據HttpServletRequest轉換爲HSSFWorkbook(excel對象)

 @SuppressWarnings("unchecked")
    @RequestMapping(params = "importExcel", method = RequestMethod.POST)
    @ResponseBody
    public AjaxJson importExcel(HttpServletRequest request) {
        AjaxJson j = new AjaxJson();
        //request前端傳回對象轉換爲 MultipartHttpServletRequest
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

        //multipartRequest對象轉換爲Map<String, MultipartFile>的MultipartFile對象fileMap
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();

        //做單次循環,將MultipartFile對象解析出
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {

            //獲取爲MultipartFile對象multipartFile
            MultipartFile multipartFile = entity.getValue();

            //直接將MultipartFile強制轉換爲File文件
            File file = new File(multipartFile.getOriginalFilename());

            try {
                //將MultipartFile轉換爲HSSFWorkbook對象
                HSSFWorkbook workbook = new HSSFWorkbook(new POIFSFileSystem(multipartFile.getInputStream()));
                //這裏獲取了workbook對象便可對其進行excel操作。
            } catch (IOException e) {
                //
            }
        }
        return j;
    }

面向開發過程,記錄學習之路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章