代码拉取完成,页面将自动刷新
引入依赖:
compile 'org.grails.plugins:excel-import:3.0.0.RC4'
注入serivce
def excelImportService
创建导入方法:
def excelImportService
/**
* 从指定行startRow开始读取,startRow从0开始算
* 不指定lastRow,导入从指定行开始到最后一行的数据
*/
def excelImport = {
InputStream inputStream = null
try {
//获取文件,此处可通过上传获取文件
File file = new File("c:\\file\\用户信息.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)
println (user as JSON)
}
render ([msg:"Excel导入成功"]) as JSON
} catch (Exception e) {
e.printStackTrace()
render ([msg:"Excel导入失败"]) as JSON
}finally{
//关闭输入流
if(!inputStream){
inputStream.close()
}
}
}
/**
* 从指定行startRow开始读取,截止到lastRow最后行
* startRow的下标从0开始
* lastRow下标从1开始
* lastRow必须大于startRow(lastRow > startRow),若lastRow==-1,则导入读取指定行开始之后的所有数据
*/
def rangeImport = {
InputStream inputStream = null
try {
//获取文件,此处可通过上传获取文件
File file = new File("c:\\file\\用户信息.xlsx")
//定义表头
Map CONFIG_BOOK_COLUMN_MAP = [
sheet:'Sheet1',
startRow: 1,
lastRow: -2,
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)
println (user as JSON)
}
render ([msg:"Excel导入成功"]) as JSON
} catch (Exception e) {
e.printStackTrace()
render ([msg:"Excel导入失败"]) as JSON
}finally{
//关闭输入流
if(!inputStream){
inputStream.close()
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型