cachedrowsetimpl import不成功_grails中excel-import的用法

excel-import

带上传:Grails 3 Upload Excel

环境变量:

| Grails Version: 3.1.5
| Groovy Version: 2.4.6
| JVM Version: 1.8.0_141

在build.gradle中加入excel的依赖

compile 'org.grails.plugins:excel-import:3.0.0.RC4'

新建一个域类User

package com.lee

class User {

    String name  //姓名
    Integer age  //年龄
    String sex   //性别
    String addr  //籍贯

    static constraints = {

        name nullable: false
        age nullable: false,range: 1..100
        sex nullable: false
        addr nullable: false

    }
}

创建控制器UserController

注入excelImportService

def excelImportService

附上excel截图:

a548191dd5885a643021be147353cb2b.png

创建文件导入方法

def excelImport = {
        InputStream inputStream = null
        try {
            //获取文件,此处可通过上传获取文件
            File file = new File("d:用户信息.xlsx")
            //定义表头
            Map CONFIG_BOOK_COLUMN_MAP = [
                    sheet:'Sheet1',
                    startRow: 1,
                    columnMap:  [
                            //Col, Map-Key
                            'A':'name',
                            'B':'age',
                            'C':'sex',
                            'D':'addr'
                    ]
            ]
            //将文件放到输入流中
            inputStream = new FileInputStream(file)
            Workbook workbook = WorkbookFactory.create(inputStream)

            //解析Excel的行存入list
            List list = excelImportService.columns(workbook,CONFIG_BOOK_COLUMN_MAP)
            list.each { v->
                User user = new User()
                user.name = v.name
                user.age = v.age as Integer
                user.sex = v.sex
                user.addr = v.addr
                println "用户信息:"+user
                user.save(flush:true)
            }
            render ([msg:"Excel导入成功"]) as JSON
        } catch (Exception e) {
            e.printStackTrace()
            render ([msg:"Excel导入失败"]) as JSON
        }finally{
            //关闭输入流
            if(!inputStream){
                inputStream.close()
            }
        }
    }

测试:

启动项目访问:http://localhost:8080/user/excelImport

2fe8b4c55ea367ad7c32364e2e764cd4.png

查看用户列表:

40896e6ddac234f6792d6c789d062d56.png

如果有插入数据不成功的情况:在application.groovy中添加如下可以解决允许数据字段为空:

grails.gorm.default.constraints = { '*'(nullable: true)}

本文出自:

Genee:grails集成excel插件导入数据​zhuanlan.zhihu.com

附:Mr.Lee/grails_excel_import - 码云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值