我有一个从excel读取数据并将其插入数据库的Web程序。
我从jsp中读取它作为部分,然后将其转换为输入流。
Part filePart = request.getPart("file");
InputStream fileContent = filePart.getInputStream();
然后下面的代码用于从中创建工作簿(org.apache.poi.ss.usermodel.Workbook)
Workbook wb = null;
Sheet sheet = null;
try {
wb = WorkbookFactory.create(fileContent);
sheet = wb.getSheetAt(0);
} catch (InvalidFormatException | EncryptedDocumentException | NullPointerException ex) {
return null;
}
来自here我发现了这个
创建
public static Workbook create(java.io.InputStream inp)
从给定的InputStream创建适当的HSSFWorkbook / XSSFWorkbook。
请注意,使用InputStream的内存占用量比使用File更高。
有没有办法将InputStream
转换为File
或Parts
至File
...谢谢
答案 0 :(得分:0)
FileUtils
Part filePart = request.getPart("file");
InputStream fileContent = filePart.getInputStream();
File tempFile = File.createTempFile( "myfile", ".xls" )
FileUtils.copyToFile( fileContent, tempFile );
您还需要:
import org.apache.commons.io.FileUtils;
如果你正在使用Maven,那么适当的依赖:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>