import jxl.Workbook
import jxl.Sheet
/**
* 使用jxl实现将数据导入Excel表
*/
class ExcelExportController {
/**
* 用FORM提交请求action=exportData
*/
def exportData = {
def products = Products.list() //导出产品表数据
if (products?.size() > 0) {
render '没有数据'
return
}
def myParams = [:]
myParams.fileName = "产品表"
myParams.sheetName = "产品表"
myParams.rowData = products
myParams.response = response
myParams.columnNames = ['产品ID','产品名','产品类型','产品价格'] //字段名
excelExport(response, myParams) {wsheet, rowData-> //{sheet, rowData->......}作为闭包传给excelExport()方法
rowData.eachWithIndex {object, index->
jxl.write.Label wlabelContent
/**
* 产品ID
*/
wlabelContent = new jxl.write.Label(0, index + 1, object.id)
wsheet.addCell(wlabelContent)
/**
* 产品名
*/
wlabelContent = new jxl.write.Label(1, index + 1, object.productName)
wsheet.addCell(wlabelContent)
/**
* 产品类型
*/
wlabelContent = new jxl.write.Label(2, index + 1, object.productType)
wsheet.addCell(wlabelContent)
/**
* 产品价格
*/
wlabelContent = new jxl.write.Label(4, index + 1, object.productPrice)
wsheet.addCell(wlabelContent)
}
}
}
/**
* closure闭包指向excelExport(response, myParams)后面的代码
*/
def excelExport(response, params, Closure closure) {
def fileName = new String("${params.fileName}".getBytes("UTF-8"),"8859_1")
def os = response.getOutputStream()
response.reset()
response.setHeader("Content-disposition", "attachment;filename=${fileName}.xls")
response.setContentType("application/msexcel")
jxl.write.WritableWorkbook wbook = Workbook.createWorkbook(os)
jxl.write.WritableSheet wsheet = wbook.createSheet("${params.sheetName}", 0)
params.columnNames.eachWithIndex {object, index->
jxl.write.Label wlabel0
wlabel0 = new jxl.write.Label(index, 0, object) //index:列号 0:行号 object:字段名
wsheet.addCell(wlabel0)
}
closure(wsheet, rowData) //闭包调用,把产品表中的数据写到sheet里
try {
wbook.write()
response.flushBuffer()
wbook.close()
os?.close()
} catch (Exception e) {
println "exception"
}
}
}
分享到:
相关推荐
NULL 博文链接:https://xurichusheng.iteye.com/blog/1863479
JXL 将内容导入到Excel中 ,一个小例子 , 内有详细注释。
使用Jxl对Excel进行导入导出,其中包含设置单元格样式以及数据有效性。
java后台jxl将excel数据导入到MYSQL中
数据导入Excel运用JXL的各类方法介绍
java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据
Excel导入导出 jxl及Poi 工具类:jxl 实现 及 Poi实现 非常实用
使用了hibernate+struts1+spring + MYSql数据库 能够将数据库整张表的数据导出到excel...也能将excel 的数据导入 到空的 数据库表中。 能够保证导出的数据类型不变。 如要正确运行,必须先执行src 下的backup.sql 脚本
在 Java 中,实现 Excel 导入导出可以使用多种方式,本文将介绍使用 JXL 和 POI 两个库实现 Excel 导入导出的方法。 使用 JXL 库实现 Excel 导入导出 JXL(Java Excel API)是一个开源的 Java 库,用于读写 Excel ...
JAVA实现数据库数据导入导出到Excel(POI)所需jar包
在实现 Excel 数据导入到 MySQL 数据库时,需要使用 Java 语言来读取 Excel 数据,然后将数据写入到 MySQL 数据库中。下面是一个简单的示例代码: ```java public class ExcelToMysql { public static void main...
一个简单的struts2框架,使用poi和jxl由前台向excel表中添加数据的一个小程序源码,下载下来部署到服务器就能使用,execl的路径在action中修改成你的路径就能使用了
java实现excel的导入导出(poi详解),经过测试poi效率要比jxl要高很多,特别是数据量大的时候jxl根本无法用肉眼入目,本资源是个可运行项目demo,很有参考价值!
NULL 博文链接:https://huhongyu.iteye.com/blog/1844333
jxl java 数据导出为excel工具包 使用简单,方便 容易上手,不支持高版本excel
NULL 博文链接:https://wikimo.iteye.com/blog/453702
使用jxl可以将excel中的数据导入到mysql,aceess数据库中,很方便操作,还有很多示例,很好的,保证你在几分钟内可以完成基本操作
Java JXL Excel导入导出API Java JXL 是一个纯 Java 的API,用于导入导出Excel文件。...JXL API是一个非常方便的Excel导入导出API,易于使用,无需依赖Windows系统,可以在Linux下运行,並且能够正确地处理Excel文件。
Java解释Excel数据(jxl.jar包的使用) 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体、数字、日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要。最关键的是...
使用jxl实现poi简单的功能,通过反射原理动态验证内容及导入导出excel文件