Easyui上传文件案例  

  第一步:要想使用OCUpload首先前端需要导入js包

            <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.ocupload-1.1.2.js"></script>

  第二步:提供一个上传按钮(本案例用的EasyUi框架)

   var toolbar = [{
                id: 'button-edit',
                text: '修改',
                iconCls: 'icon-edit',
                handler: doView
            }, {
                id: 'button-import',
                text: '导入',
                iconCls: 'icon-redo'
           ];

第三步:提供按钮事件

   $(function() {
                $('#button-import').upload({
                    action: '${pageContext.request.contextPath}/upLoad.action',
                    name: 'areaFile',
                    onComplete: function(data) {

          alert(data);

      }

     });

    });

  第四步:写controller层

@Controller
@ParentPackage("struts-default")
@Namespace("/")
@Scope("prototype")
public class AreaAction extends ActionSupport implements ModelDriven<Area> {
    private Area model = new Area();
  @Resource
    private AreaService areaservice;

 @Action(value="areaAction_importXls")
    public String importXls() throws IOException{
        String flag = "1";//1-成功;0-失败
        try {
            //1.使用workbook获取整个excel
            HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(areaFile));
            //2.使用workbook获取某个sheet页
            HSSFSheet sheet = wb.getSheetAt(0);
            //3.遍历sheet页获取row行
            List<Area> list = new ArrayList<Area>();
            for(Row row : sheet){
                //3.1跳过第一行标题行
                int rowNum = row.getRowNum();
                if(0 == rowNum){
                    continue;//跳过本次循环,进入下一次循环
                }
                //4.使用row获取cell单元格
                String id = row.getCell(0).getStringCellValue();
                String province = row.getCell(1).getStringCellValue();
                String city = row.getCell(2).getStringCellValue();
                String district = row.getCell(3).getStringCellValue();
                String postcode = row.getCell(4).getStringCellValue();
                //5.创建area封装数据
                Area area = new Area();
                area.setId(id);
                area.setProvince(province);
                area.setCity(city);
                area.setDistrict(district);
                area.setPostcode(postcode);
                
                province = province.substring(0, province.length() - 1);
                city = city.substring(0, city.length() - 1);
                district = district.substring(0, district.length() - 1);
                String tempStr = province+city+district;//河北石家庄开发
                String[] headByString = PinYin4jUtils.getHeadByString(tempStr);//[H,B,S,J,Z,K,F]
                String shortcode = StringUtils.join(headByString, "");
                area.setShortcode(shortcode);
                
                //2.城市码
                String citycode = PinYin4jUtils.hanziToPinyin(city,"");
                area.setCitycode(citycode);
                
                list.add(area);
            }
            //6.批量保存数据
            areaService.batchSave(list);
        } catch (IOException e) {
            e.printStackTrace();
            flag = "0";
        }
        //7.使用response将flag返回
        ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
        ServletActionContext.getResponse().getWriter().print(flag);
        return NONE;
    }

}

第五步:创建service层的save方法实现保存。

@Service
@Transactional
public class AreaServiceimp implements AreaService {

 @Resource
    private AreaDao areadao;

@Override
    public void add(ArrayList<Area> list) {
        for (Area area : list) {
            areadao.save(area);
        }
    }

}

第六步:AreaDao创建(本测试案例用到的持久层是JPA)

    public interface AreaDao extends JpaRepository<Area, String>, JpaSpecificationExecutor<Area> { }

第七步:修改jsp页面,如果上传成功提示用户上传成功、如果失败就提示上传失败。

             <script>
            $(function() {
                $('#button-import').upload({
                    action: '${pageContext.request.contextPath}/upLoad.action',
                    name: 'areaFile',
                    onComplete: function(data) {
                        if("1" == data) {
                            $.messager.confirm('提示信息', '上传成功', 'info');
                        } else {
                            $.messager.alert('提示信息', '上传失败', 'error');
                        }
                    }
                })
            })
        </script>

开始测试:

转载于:https://www.cnblogs.com/sjzxs/p/9438529.html

EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能相关推荐

  1. Springboot整合poi +vue实现导出导入Excle表格数据展示图形

    工具: idea 数据库: mysql 框架:Springboot 准备工作: 1.导入主要依赖 (poi) <dependency><groupId>org.apache.p ...

  2. 使用jQuery OCUpload实现excel文件一键上传功能

    使用jQuery OCUpload实现excel文件一键上传功能 js代码 //为导入按钮,添加一键上传效果 $("#button-import").upload({action: ...

  3. POI上传Excel的小问题处理

    package com.platform.utils.excel;import com.platform.utils.RRException; import org.springframework.w ...

  4. poi 上传Excel如何处理大文件,避免内存溢出

    使用poi做上传时,使用一般的形式,用户模式:new WorkBook()时,代码简单易懂,但是这种方式只能操作小文件,遇到大的文件就会报内存溢出的错.有问题就要解决,下面分享几种解决方式 第一种:只 ...

  5. java上传加密_Java上传下载文件并实现加密解密

    使用 Jersey 服务器实现上传,使用 HTTP 请求实现下载 引入依赖 在 pom.xml 中添加 Jersey 相关依赖 com.sun.jersey jersey-client 1.18.1 ...

  6. vue element upload 控件用form-data上传方式导入xls文件

    <!-- 导入---------------------------------------- --><el-uploadstyle="margin-right: 10px ...

  7. Struts2文件上传方式与上传失败解决方式

    首先将几个对象弄出来 第一个 上传页面 第二个 上传action 第三个 startut2配置文件 我的文字描述不是很好,但是终归是自己写出来的,后来我在网上看到一篇关于文件上传描述的非常清楚的文章, ...

  8. java文件上传_Java文件上传细讲

    什么是文件上传? 文件上传就是把用户的信息保存起来. 为什么需要文件上传? 在用户注册的时候,可能需要用户提交照片.那么这张照片就应该要进行保存. 上传组件(工具) 为什么我们要使用上传工具? 为啥我 ...

  9. Struts2 单个文件上传/多文件上传

    1导入struts2-blank.war所有jar包:\struts-2.3.4\apps\struts2-blank.war 单个文件上传 upload.jsp <s:form action= ...

最新文章

  1. 美观实用!Star 过万,用 Python 做交互式图形的这款工具火了!
  2. Linux命令之du
  3. Windows2012R2服务器的安装与亮点功能介绍
  4. GC-ALLOC 的另一个重要作用,查内存泄漏
  5. 电脑端腾讯视频如何设置离线下载完成后自动关机
  6. poj3276 反转 挑战程序设计竞赛
  7. Hi3798M V200 SDK文档介绍
  8. 企业邮箱及邮件服务器架设
  9. (Deep learning)深度卷积网络实战——第一部分
  10. 《疯狂Python讲义》数字转人民币大写完整代码
  11. STC12C5A60S2独立PWM
  12. 积极主动沟通说话交流的重要性和案例以及技巧
  13. 运放自激震荡的大杂烩总结
  14. 【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
  15. 面试技巧: 轻松过关10种方法
  16. 2020年的数据工程
  17. 神州租车确定将从港股退市:上半年亏43亿元,联想控股彻底退出
  18. linux修改盘符名
  19. python调用百度翻译-Python 调用百度翻译API
  20. python将英文字母排序_20191106-基于Python的对字母基数排序

热门文章

  1. 关于级数∑(x n-x n-1)一致收敛性的一点儿理解
  2. 英伟达发布全球唯一千万亿级集成型 AI 工作组服务器
  3. Windows XP安装Python,最高支持到3.4.4,后续版本不支持
  4. 机器学习入门方法推荐(少走弯路)入门视频推荐
  5. java 内存泄漏场景_Java内存泄露的例子
  6. 玩cf出现outofmemory_《穿越火线》的肖枫原型是CF选手白鲨吗?
  7. android小程序备忘录,撸一个会话备忘录的小程序
  8. php mescroll,mescroll下拉刷新和上拉加载js框架
  9. extjs 限制上传文件类型_如何让extjg 支持选择多文件上传
  10. 简述泛型的上界和下界?