Spring学习笔记(三十三):导入execl。
思路:先用MultipartFile上传文件,后台获取,转换成InputStream,创建Workbook(这里要判断File是2003版的xls还是2007版的xlsx,因为这两个的实现不同),然后循环获取行和列即可; 代码如下:package com.prositech.v11j.utils; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.web.multipart.MultipartFile; import com.prositech.v11j.clothes.entity.Cloth; import com.prositech.v11j.clothes.entity.ClothSize; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExeclUtil { private static int totalRows; private static int totalCells; //读取execl public static ListreadExecl(MultipartFile file){ try{ String name = file.getOriginalFilename(); InputStream in = file.getInputStream(); Workbook wb = null; if(name.contains("xlsx")) wb = new XSSFWorkbook(in); else wb = new HSSFWorkbook(in); Sheet sheet=wb.getSheetAt(0); totalRows=sheet.getPhysicalNumberOfRows(); if(totalRows>=1 && sheet.getRow(0) != null){ totalCells=sheet.getRow(0).getPhysicalNumberOfCells(); } List list = new ArrayList (); for(int i=1;i