起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3138|回复: 6

[结贴] excel导入如何中止

[复制链接]

27

主题

101

帖子

413

积分

中级会员

Rank: 3Rank: 3

积分
413
QQ
发表于 2019-9-26 19:00:39 | 显示全部楼层 |阅读模式
在excel导入前对所有数据进行校验,只要有一条不符合要求的数据,则所有的数据都不导入,在AfterImportExcelBeforeAction中进行校验这个我知道,想问的是如何所有数据不导入

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
发表于 2019-9-27 08:45:15 | 显示全部楼层
抛出runtimeexception
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

27

主题

101

帖子

413

积分

中级会员

Rank: 3Rank: 3

积分
413
QQ
 楼主| 发表于 2019-9-27 09:25:45 | 显示全部楼层

没理解,代码怎么写?
我是想校验某个字段不合规的时候主动的不导入所有数据
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-9-27 11:16:02 | 显示全部楼层
java中直接抛出异常啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

27

主题

101

帖子

413

积分

中级会员

Rank: 3Rank: 3

积分
413
QQ
 楼主| 发表于 2019-9-29 09:04:35 | 显示全部楼层
jishuang 发表于 2019-9-27 11:16
java中直接抛出异常啊

我在代码中抛出了异常,但前台显示效果太粗暴了,用户体验不好,有什么改进的办法吗?
  1. public static void devicesProcessAfterImportExcelBeforeAction() {        
  2.         List listZBBM=new ArrayList();//存放zbbm查重的数据
  3.         String sqlZBBM = "select a.* from T_05ZB_CO_ZBZY a";
  4.                 Table tableZBBM = SQL.select(sqlZBBM,null,"/CoreResourses/info_02/data");
  5.                 if(tableZBBM.size()>0){
  6.                         Iterator<com.justep.system.data.Row> Rows = tableZBBM.iterator();
  7.                         while (Rows.hasNext()){
  8.                             com.justep.system.data.Row row = Rows.next();
  9.                             listZBBM.add(row.getString("FZBBM"));
  10.                         }
  11.                 }
  12.                
  13.                 //校验通过标识符
  14.                 Boolean flag = true;
  15.                
  16.                 //开始校验
  17.                 Workbook workBook = (Workbook)ModelUtils.getRequestContext().getActionContext().getParameter("excel");
  18.         Sheet sheet=workBook.getSheetAt(0); //获得sheet1表
  19.         for(int i=0;i<=sheet.getLastRowNum();i++){
  20.             Row row=sheet.getRow(i);
  21.             Cell cell=row.getCell(0);//根据excel表中第一列数据进行校验
  22.             
  23.              if(listZBBM.contains(cell.getStringCellValue())){
  24.                     flag = false;
  25.                     break;
  26. //                row.removeCell(cell);//如果list存在和鉴别列相同的数据就删除               
  27.             }else{
  28.                     listZBBM.add(cell.getStringCellValue());//如果不存在就添加到list
  29.             }
  30.             System.out.println(i);
  31.             
  32.            
  33.         }
  34.         
  35.         //校验不通过抛出异常
  36.         if(!flag){

  37.                 throw new RuntimeException("数据不符合规范");
  38.         }
  39.         
  40.         }
复制代码


QQ图片20190929090300.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-9-29 10:35:50 | 显示全部楼层
运行模式是没有下面的的堆栈信息的,开发模式启动才会提示
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

27

主题

101

帖子

413

积分

中级会员

Rank: 3Rank: 3

积分
413
QQ
 楼主| 发表于 2019-9-29 15:32:19 | 显示全部楼层
jishuang 发表于 2019-9-29 10:35
运行模式是没有下面的的堆栈信息的,开发模式启动才会提示

好的~结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-29 01:46 , Processed in 0.059363 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表