package com.github.ryoasai.springmvc.jxls; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Map; import net.sf.jxls.reader.ReaderBuilder; import net.sf.jxls.reader.XLSReadStatus; import net.sf.jxls.reader.XLSReader; import org.apache.commons.io.IOUtils; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.springframework.core.io.Resource; import org.springframework.ui.Model; import org.springframework.web.multipart.MultipartFile; import org.xml.sax.SAXException; public class JxlsFileReader { public XLSReadStatus read(Resource templateFile, MultipartFile file, Model model) throws InvalidFormatException, IOException, SAXException { return read(templateFile, file, model.asMap()); } public XLSReadStatus read(Resource templateFile, MultipartFile file, Map<?, ?> model) throws InvalidFormatException, IOException, SAXException { InputStream inputXML = null; InputStream inputXLS = null; try { inputXML = new BufferedInputStream(templateFile.getInputStream()); XLSReader mainReader = ReaderBuilder.buildFromXML(inputXML); inputXLS = new BufferedInputStream(file.getInputStream()); return mainReader.read(inputXLS, model); } finally { IOUtils.closeQuietly(inputXML); IOUtils.closeQuietly(inputXLS); } } }