| | |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.io.*; |
| | | import java.lang.reflect.Field; |
| | | import java.lang.reflect.Method; |
| | | import java.util.*; |
| | |
| | | } |
| | | public ExcelImporter(String fileName, InputStream in, int headerNum, int sheetIndex,CellType cellType) |
| | | throws InvalidFormatException, IOException { |
| | | ByteArrayOutputStream buffer = toByteArray(in); |
| | | if (StringUtils.isBlank(fileName)){ |
| | | throw new RuntimeException("导入文档为空!"); |
| | | }else if(fileName.toLowerCase().endsWith("xls")){ |
| | | this.wb = new HSSFWorkbook(in); |
| | | this.wb = new HSSFWorkbook(new ByteArrayInputStream(buffer.toByteArray())); |
| | | }else if(fileName.toLowerCase().endsWith("xlsx")){ |
| | | this.wb = new XSSFWorkbook(in); |
| | | this.wb = new XSSFWorkbook(new ByteArrayInputStream(buffer.toByteArray())); |
| | | }else{ |
| | | throw new RuntimeException("文档格式不正确!"); |
| | | } |
| | |
| | | this.sheet = this.wb.getSheetAt(sheetIndex); |
| | | this.headerNum = headerNum; |
| | | this.changeType = cellType; |
| | | this.pictureList = ExcelPictureUtil.getExcelPictures(in); |
| | | this.pictureList = ExcelPictureUtil.getExcelPictures(new ByteArrayInputStream(buffer.toByteArray())); |
| | | log.debug("Initialize success."); |
| | | } |
| | | |
| | | public static ByteArrayOutputStream toByteArray(InputStream inputStream) { |
| | | try { |
| | | // 缓存文件流 |
| | | ByteArrayOutputStream buffer = new ByteArrayOutputStream(); |
| | | byte[] data = new byte[1024]; |
| | | int nRead; |
| | | while ((nRead = inputStream.read(data, 0, data.length))!= -1) { |
| | | buffer.write(data, 0, nRead); |
| | | } |
| | | buffer.flush(); |
| | | |
| | | return buffer; |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | "fieldtype."+valType.getSimpleName()+"Type")).getMethod("getValue", String.class).invoke(null, val.toString()); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception ex) { |
| | | log.info("Get cell value ["+i+","+column+"] error: " + ex.toString()); |
| | | val = null; |