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截图:
创建文件导入方法
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
查看用户列表:
如果有插入数据不成功的情况:在application.groovy中添加如下可以解决允许数据字段为空:
grails.gorm.default.constraints = { '*'(nullable: true)}
本文出自:
Genee:grails集成excel插件导入数据zhuanlan.zhihu.com附:Mr.Lee/grails_excel_import - 码云