ssm框架和读取Excle异常问题

我们在使用springmvc框架的时候,往往会把上传的文件封装成MultipartFile对象,如果你用的jxt来解析MultipartFile里面的excle文件,可能发生异常,反正我是发生了:Workbook  rwb=Workbook.getWorkbook(excleFile.getInputStream()); //excleFile是传过来MultipartFile excleFile对象,当jxt解析MultipartFile的输入流时出现了异常,意思大约是jxt不能解析MultipartFile,本人菜鸟试了很多方法还是没搞定!!!于是用pox架构与ssm框架进行整合,但是又遇上了异常,Workbook rwb=new HSSFWorkbook(excleFile.getInputStream());再一次报错了,大约意思是版本是2007的要用XSSF来替代HSSF于是更改为 Workbook rwb=new XSSFWorkbook(excleFile.getInputStream());结果好了....于是想到了如果要解析的excle文件低于2007版本和高于2007版本代码如下    Workbook rwb=null;
                try {
                    rwb=new HSSFWorkbook(excleFile.getInputStream());
                }catch(Exception e){
                    e.printStackTrace();
                    try {
                        rwb=new XSSFWorkbook(excleFile.getInputStream());
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
SSM框架结合EasyExcel可以很方便地实现Excel文件的导入功能。下面是一个简单的实现步骤: 1. 添加EasyExcel依赖 在pom.xml文件中添加EasyExcel的依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version> </dependency> ``` 2. 编写Controller代码 在Controller中编写导入Excel文件的代码,如下所示: ```java @RequestMapping(value = "/importExcel", method = RequestMethod.POST) @ResponseBody public String importExcel(@RequestParam("file") MultipartFile file) throws IOException { InputStream inputStream = file.getInputStream(); try { // 读取Excel文件 ExcelReader excelReader = EasyExcel.read(inputStream).build(); // 获取第一个sheet List<ImportData> dataList = excelReader.read(new Sheet(1, 1, ImportData.class)); // 关闭流 excelReader.finish(); // 处理导入的数据 for (ImportData data : dataList) { // TODO: 处理数据 } return "导入成功"; } catch (Exception e) { e.printStackTrace(); return "导入失败"; } finally { inputStream.close(); } } ``` 其中,ImportData是一个JavaBean,用于存储Excel中的数据。 3. 编写Excel数据类 定义一个Java类,用于存储Excel中的数据。例如: ```java @Data public class ImportData { @ExcelProperty("姓名") private String name; @ExcelProperty("年龄") private Integer age; @ExcelProperty("性别") private String gender; // 省略setter和getter方法 } ``` 4. 编写Excel模板 定义一个Excel模板,用于指定Excel文件的格式。例如: ```java public class ImportDataTemplate { public static List<List<String>> headList() { List<List<String>> headList = new ArrayList<>(); List<String> head0 = new ArrayList<>(); head0.add("姓名"); List<String> head1 = new ArrayList<>(); head1.add("年龄"); List<String> head2 = new ArrayList<>(); head2.add("性别"); headList.add(head0); headList.add(head1); headList.add(head2); return headList; } public static List<String> fieldList() { List<String> fieldList = new ArrayList<>(); fieldList.add("name"); fieldList.add("age"); fieldList.add("gender"); return fieldList; } } ``` 5. 编写Excel文件 按照Excel模板的格式,编写Excel文件,例如: | 姓名 | 年龄 | 性别 | | ---- | ---- | ---- | | 张三 | 25 | 男 | | 李四 | 30 | 女 | 6. 测试 启动应用程序,调用/importExcel接口上传Excel文件,即可实现Excel文件的导入功能。 以上就是SSM框架结合EasyExcel实现Excel导入的基本步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值