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>

开始测试:

EasyUi通过OCUpload上传及POI上传 实现导入xls表格功能的更多相关文章

  1. EasyUi通过POI 实现导出xls表格功能

    Spring +EasyUi+Spring Jpa(持久层) EasyUi通过POI 实现导出xls表格功能 EasyUi界面: 点击导出按钮实现数据导入到xls表格中 第一步:修改按钮事件: @Co ...

  2. golang学习之beego框架配合easyui实现增删改查及图片上传

    golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...

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

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

  4. hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images

    hTML5实现表单内的上传文件框,上传前预览图片,针刷新预览images, 本例子主要是使用HTML5 的File API,建立一個可存取到该file的url, 一个空的img标签,ID为img0,把 ...

  5. 【Java EE 学习 22 上】【文件上传】【目录打散】【文件重命名】

    1.文件上传概述 (1)使用<input type="file">的方式来声明一个文件域. (2)表单提交方式一定要是post方式才行 (3)表单属性enctype 默 ...

  6. 将项目上传到git上,并在测试服务器上运行

    上周我完成了我人生的第一个项目,并将它上传到gitHub上完成了团队合作.下面我将用倒叙的方法记录下,我的这段经历. 星期五,项目完成准备上传gitHub启动测试服务器. 1.git clone 项目 ...

  7. 我需要在Web上完成一个图片上传的功能

    我需要在Web上完成一个图片上传的功能. 这个页面需要能从手机中选择图片上传. 首先,这个页面是从微信上面触发的,所以修改了微信的的入口地址,增加了身份识别号作为传参. 跳转到页面的时候,页面先检查身 ...

  8. 打造 html5 文件上传组件,实现进度显示及拖拽上传,支持秒传+分片上传+断点续传,兼容IE6+及其它标准浏览器

    老早就注册了博客园帐号,昨天才发现,连博客都没开,Github也是一样,深觉惭愧,赶紧潜个水压压惊`(*∩_∩*)′ 言归正传.大概许多人都会用到文件上传的功能,上传的库貌似也不少,比如(jQuery ...

  9. 百度开源富文本编辑器 UEditor配置:图片上传和文件上传独立使用方法

    使用UEditor编辑器自带的插件实现图片上传和文件上传功能,这里通过配置UEditor单独使用其内置的第三方插件swfupload来实现图片和文件的上传,通过对UEditor配置轻松实现图片批量上传 ...

随机推荐

  1. 代码控如何实现配置fiddler

    很多小哥哥总觉得测试点点点很low,总想码代码.那么fiddler除了一些手动设置外,还可以进行丰富的代码编写,用以完成任务. 打开fiddler,工具栏选择Rules->Customize R ...

  2. finecms栏目文章页seo设置

    finecms栏目页和文章页默认的标题是页面title_二级栏目title_一级栏目title_网站名称(比如:finecms怎么设置标题_finecms二次开发_finecms_ytkah博客),如 ...

  3. mysql sysbench基准测试

    git项目地址: https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其 ...

  4. docker私有仓库搭建和资源限制

    Docker 私有仓库的搭建 docker 私有仓库默认只支持https协议的访问  不支持http协议 如果需要允许通过http协议访问 必须手动修改配置文件 docker官方默认提供的仓库  提供 ...

  5. 【leetcode】部分思路整理

    题目: 求一个树的最小深度. 思路: 思路一:递归     若为空树返回0:     若左子树为空,则返回右子树的最小深度+1:(加1是因为要加上根这一层,下同)     若右子树为空,则返回左子树的 ...

  6. ps切图插件

    ps切图工具插件 下载网址:http://www.cutterman.cn/zh/cutterman 安装完插件,关闭ps,重新打开,窗口- 扩展,即可使用

  7. 通过thriftserver的beeline/jdbc等方式连接到SparkSQL

    thriftserver和beeline的简单配置和使用启动thriftserver: 默认端口是10000 ,可以修改 $ ./${SPARK_HOME}/sbin/start-thriftserv ...

  8. configure.in详解

    configure.in文件里基本的内容就是一系列的m4宏,在运行时根据传递给它们的参数,定义的宏就会扩展为shell的脚本代码段.也可以手工书写shell代码.不过我们就不说这个了,要想完全的理解c ...

  9. DL中epoch、batch等的意义【转载】

    转自:深度学习中 number of training epochs 中的 epoch到底指什么? - 知乎 https://www.zhihu.com/question/43673341 1. (1 ...

  10. Mybatis中映射器实现方式总结

    一种是通过XML文件方式(由一个java接口和一个XML文件构成) RoleMapper rm = session.getMapper(RoleMapper.class); List<Role& ...