struts2 框架 java 使用poi批量导入excel数据

poi批量导入execl数据,记录备忘:

1、jsp页面form 文件上传

<form id="imform" method="post"   enctype="multipart/form-data">
                        <div class="form_nr_ul">
                                <div class="form_nr_title">excel文件:</div>
                                <div class="form_nr_content">
                                    <input id="file" type="file" name="file"
                                        class="validate[required]" style="width: 500px" />
                                </div>
                            </div>
                        </form>

2.、js代码如下:

function uploadPeopleMes() { 
    saveData("imform","wAjax/pho!batchUpload.action",subCallbck,"saveUrl");
}

3、action中定义如下三个变量,并且添加get和set方法 :

    private File file; // 导入文件
    private String fileFileName;// 上传文件的名称
    private String fileContentType;// 上传文件的MIME类型

4、获取到文件,并且开始准备读取

    // 取到服务器上传文件存放的路径
        String path = ServletActionContext.getServletContext().getRealPath(
                "/file/");
        File file1 = new File(path);
        if(!file1.exists())file1.mkdirs();
        // 取到上传文件的完整路径
        File file2 = new File(file1,fileFileName);
         try {
            //保存文件
            FileUtils.copyFile(file, file2);
        } catch (IOException e) {
            e.printStackTrace();
        }

if (file2.getPath().endsWith("xls")) {// 2003读取并保存数据
                    POIFSFileSystem fs = new POIFSFileSystem(
                            new FileInputStream(file2));
                    HSSFWorkbook wb = new HSSFWorkbook(fs);
                    HSSFSheet sheet = wb.getSheetAt(0);
                    int rownum = sheet.getLastRowNum();
                    for (int i = 1; i <= rownum; i++) {
                        j = i + 1;
                        ArrayList l = new ArrayList();
                        HSSFRow row = sheet.getRow(i);
                        WebUnitInfo p = new WebUnitInfo();

                        p.setUnitName(String.valueOf(row.getCell(0)));
                        p.setUnitPhone(String.valueOf(row.getCell(1)));
                        p.setUnitAddress(String.valueOf(row.getCell(2)));
                        p.setUnitComment(String.valueOf(row.getCell(4)));
                        String s = String.valueOf(row.getCell(3)).trim();

                        WebConventInfo convent = queryConventInfoByConventName(s);
                        p.setUnitClassify(new Integer(convent.getConventCode())
                                .toString());
                        p.setUnitUrl(convent.getConventImg());

                        p.setCreateDate(DateUtil.getCurrentTimeStamp());
                        p.setCreateId(user.getUserId());
                        purList.add(p);

                    }
                } else if (file2.getPath().endsWith("xlsx")) {// 2007读取并保存数据
                    XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(
                            file2));
                    XSSFSheet sheet = xwb.getSheetAt(0);
                    int rownum = sheet.getLastRowNum();
                    for (int i = 1; i <= rownum; i++) {
                        j = i + 1;
                        ArrayList l = new ArrayList();
                        XSSFRow row = sheet.getRow(i);
                        WebUnitInfo p = new WebUnitInfo();

                        p.setUnitName(String.valueOf(row.getCell(0)));
                        p.setUnitPhone(String.valueOf(row.getCell(1)));
                        p.setUnitAddress(String.valueOf(row.getCell(2)));
                        p.setUnitComment(String.valueOf(row.getCell(4)));

                        String s = String.valueOf(row.getCell(3));

                        WebConventInfo convent = queryConventInfoByConventName(s);
                        p.setUnitClassify(new Integer(convent.getConventCode())
                                .toString());
                        p.setUnitUrl(convent.getConventImg());

                        p.setCreateDate(DateUtil.getCurrentTimeStamp());
                        p.setCreateId(user.getUserId());

                      
                        purList.add(p);
                    }
                }
                getHibernateTemplate().saveOrUpdateAll(purList);

5、需要注意的一个坑是 ,Excel文档的列要设置成文本格式,不然会报错 或者数据有问题。
 

猜你喜欢

转载自blog.csdn.net/u013558123/article/details/88820071