我正在使用带有导出0.9.5插件的Grails 1.3.4。
我使用的格式化程序在导出到excel时将日期格式设置为'YYYY-MM-DD'。但这并不会改变数据类型。日期将作为字符串/常规数据类型导出到Excel。
def dateFormat = { domain, value ->
if(value instanceof Date){
return new java.text.SimpleDateFormat("yyyy-MM-dd").format(value)
}
return value
}
Map formatters = [ecd:dateFormat, completed:dateFormat, dateCreated:dateFormat, approvedDate:dateFormat, dpaECD:dateFormat]
exportService.export(params.format, response.outputStream,exportList, jobService.parseColNames(columns), labels, formatters, null)
有没有办法导出数据并在excel中设置列的数据类型,这样用户每次导出后都不必手动将单元格/列格式设置为“日期”?
答案 0 :(得分:1)
您确定要使用该插件吗?它对我来说效果不好。
我一直在使用Grails的JXL插件一段时间,它运行得很好。
它甚至可以选择将Excel文件写入响应,以便用户可以使用我的REST服务直接下载文件。
链接是:http://grails.org/plugin/jxl
以下是创建工作簿的简单示例:
new ExcelBuilder().workbook('/path/to/test.xls') {
sheet('SheetName') {
cell(0,0,'Current Date')
cell(0,1,new Date())
}
}
请注意,cell()
方法有3个参数:column,row和value。第三个参数可以是数字,字符串或日期,它可以完美地格式化。
您可以找到更多信息here。