1 首先确定导入的包没有遗漏
去apache/poi官网上下载
poi-bin-3.6-20091214.zip 需要的包都在里面
2 导入包
poi-3.6-20091214.jar
poi-ooxml-3.6-20091214.jar
poi-scratchpad-3.6-20091214.jar
poi-ooxml-schemas-3.6-20091214.jar
xmlbeans-2.3.0.jar
geronimo-stax-api_1.0_spec-1.0.jar
dom4j-1.6.1.jar
commons-logging-1.1.jar
包导好后,基本不会有什么问题了
3 代码实现
Workbook book = null;
try {
//2007
book = new XSSFWorkbook(excelFile);//excelFile这个地方必须是绝对路径
} catch (Exception ex) {
//2003
book = new HSSFWorkbook(new FileInputStream(excelFile));
}
由于框架使用的spring mvc,在获取excelFile绝对路径时不知道怎么去获取,结果总是报org.apache.poi.openxml4j.exceptions.InvalidOperationException: Can't open the specified file: '*.xls'
于是做了以下操作
private static final String EXCEL_FOLDER = ConfigReader.get("excel.folder");
@RequestMapping
public String upload(
@RequestParam(value = "userexcel", required = false) final MultipartFile userexcel)
throws IOException {
InputStream in = userexcel.getInputStream();
Workbook wb = null;
try {
wb = new HSSFWorkbook(in);
} catch (Exception e) {
//excel 2007
File f=new File(EXCEL_FOLDER+userexcel.getOriginalFilename());
if(f.exists()){
f.delete();
}
userexcel.transferTo(f);
wb = new XSSFWorkbook(f.getAbsolutePath());
程序正常