Grails示例程序-导出Excel文档

程序只有一个页面,点击下载链接,下载Excel文档,该文档有两个sheet,这两个sheet和里面的内容是使用JExcelApi生成的。

  • 显示下载页面

增加一个下载页面的controller和view

SampleExcelController .groovy

<!-- lang: groovy -->
package com.tutorial

class SampleExcelController {
    def index() { }
}

index.gsp

<!-- lang: groovy -->
<!DOCTYPE html>
<html>
<head>
    <meta name="layout" content="main"/>
    <title>Simple Chat</title>
</head>

<body>
    <g:link action="downloadSampleExcel">Download Sample Excel</g:link>
</body>
</html>
  • 引入JExcelApi库文件

在config/BuildConfig.groovy中引入jexcelapi的包文件

<!-- lang: groovy -->
dependencies {
    runtime 'net.sourceforge.jexcelapi:jxl:2.6.12'
}
  • Excel文档下载

下面的代码用来生成Excel文档并提供下载

<!-- lang: groovy -->
package com.tutorial

import jxl.Workbook
import jxl.write.Label
import jxl.write.WritableSheet
import jxl.write.WritableWorkbook

class SampleExcelController {

    def index() { }

    def downloadSampleExcel() {
        response.setContentType('application/vnd.ms-excel')
        response.setHeader('Content-Disposition', 'Attachment;Filename="example.xls"')

        WritableWorkbook workbook = Workbook.createWorkbook(response.outputStream)
        WritableSheet sheet1 = workbook.createSheet("Students", 0)
        sheet1.addCell(new Label(0,0, "First Name"))
        sheet1.addCell(new Label(1,0, "Last Name"))
        sheet1.addCell(new Label(2,0, "Age"))

        sheet1.addCell(new Label(0,1, "John"))
        sheet1.addCell(new Label(1,1, "Doe"))
        sheet1.addCell(new Label(2,1, "20"))

        sheet1.addCell(new Label(0,2, "Jane"))
        sheet1.addCell(new Label(1,2, "Smith"))
        sheet1.addCell(new Label(2,2, "18"))

        WritableSheet sheet2 = workbook.createSheet("Courses", 1)
        sheet2.addCell(new Label(0,0, "Course Name"))
        sheet2.addCell(new Label(1,0, "Number of units"))

        sheet2.addCell(new Label(0,1, "Algebra"))
        sheet2.addCell(new Label(1,1, "3"))

        sheet2.addCell(new Label(0,2, "English Grammar"))
        sheet2.addCell(new Label(1,2, "5"))

        workbook.write();
        workbook.close();
    }
}
  • 知识点

1.下面的代码告诉浏览器,需要下载的文档类型以及文件名

<!-- lang: groovy -->
response.setContentType('application/vnd.ms-excel')
response.setHeader('Content-Disposition', 'Attachment;Filename="example.xls"')

2.WritableWorkbook用来创建一个Excel文档实例,通过response.outputStream响应告诉我们,这个文档不是保存到服务器端,而是直接发送给浏览器

3.WritableSheet的第二个参数是sheet的索引,0代表第一个

4.addCell中第一和第二个参数则是Excel表格中的坐标值

  • 备注

上面的代码只是简单介绍不使用插件怎么生成Excel文档,你可以根据自己的项目需要修改使用。这里是完整的代码下载地址

转载于:https://my.oschina.net/65304586/blog/193738

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值