[ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel

继上次使用js前端导出excel之后,还有一个主要大家比较关注的是后台实现导出excel,因为本人开发使用的java所以这里使用apache的开源项目poi进行后台excel的导出。

本文目录

    • 本文目录

      • poi项目下载及加载
      • extjs前端导出设置
      • extjs后台对应的解决方案
        • 创建excel工作簿
        • 创建一个excel页签
        • 生成excel样式并初始化
        • 产生表格标题行build headers
        • 构造数据行build rows

poi项目下载及加载

POI项目是apache官网的一个开源项目,其主要目的是对microsoft的办公软件进行接口封装,让用户可以对其进行编码方式书写。

项目开源网址:Apache POI: http://poi.apache.org/

到写文章的时候,最新版本是3.1.1,下载bin包 解压缩后将jar包(以下图片中的jar包)加入到项目的lib中:

OK。自己测试一下是否正常添加到项目库中就可以了。

extjs前端导出设置

在前端extjs的grid中加入底部gridtoolbar内容增加一个导出excel按钮,增加处理事件,对处理事件关联到后台action.

exportexyjsGrid: function (grid) {
//关联后台,传入需要的参数
}

extjs后台对应的解决方案

在后台的action处理:

创建excel工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

创建一个excel页签

HSSFSheet sheet = workbook.createSheet("页签标题");

生成excel样式并初始化

HSSFCellStyle style = workbook.createCellStyle();

产生表格标题行(build headers)

    HSSFRow row = sheet.createRow(0);
    for (int i = 0; i < headers.length; i++) {

        HSSFCell cell = row.createCell(i);

        cell.setCellStyle(style);

        HSSFRichTextString text = new HSSFRichTextString(headers[i]);

        cell.setCellValue(text);

    }

构造数据行(build rows)

跟标题行一样 遍历前台传入的grid参数 找到store 过滤参数条件 遍历插入excel数据行并填充数据即可。

本文主要使用的markdown编辑器功能:

1. 代码高亮

2. 图片上传

3. 标题目录

时间: 2024-10-13 04:49:18

[ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel的相关文章

[ExtJS5学习笔记]第三十五节 sencha extjs 5 组件查询方法总结

一个UI前台组件肯定会比较多,我们通常习惯性的使用ID来获取需要操作的组件,但是这种方法是extjs推荐的么?有没有extjs推荐使用的获取组件的方法呢? 目录 目录 extjs的查询组件的API 查询实例 基本的组件查询 组件树查询 通过组件的属性检索 属性匹配操作符 逻辑运算的 官方案例 extjs的查询组件的API 组件查询API文档地址:5.1.0-apidocs/#!/api/Ext.ComponentQuery-method-query 可以看到是使用的Ext.ComponentQu

Dynamic CRM 2013学习笔记(三十四)自定义审批流5 - 自动邮件通知

审批过程中,经常要求自动发邮件:审批中要通知下一个审批人进行审批:审批完通知申请人已审批完:被拒绝后,要通知已批准的人和申请人.下面详细介绍如何实现一个自动发邮件的插件:   1. 根据审批状态来确定要通知哪个人或哪个角色 状态为2 - 审批中时,查找下一个审批人 /// <summary>/// 下一个审批人/// </summary>/// <returns></returns>private List<Guid> GetNextStepPe

[ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总

本文地址:http://blog.csdn.net/sushengmiyan/article/details/42240531 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 本文以一个实际例子,使用了extjs的gridpanel中的分组统计显

学习笔记第三十五节课

rsyc通过服务同步 还可以通过服务的方式同步. 要通过服务方式同步 要先配置文件 /etc/rsyncd.comf -port=873 指定一个端口, 如果不指定 就默认873 log file=/var/log/rsync.log 指定它的日志文件.pid file=/var/run/rsyncd.pid 指定监听ip 不指定就监听所有.也能多个address=192.168.179.128[test] 方括号指定模块名path=/root/rsync 指定数据存放路径use chroot=

[extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装

本文地址:http://blog.csdn.net/sushengmiyan/article/details/46740381 简介 sencha cmd 6安装过程不需要UAC控制了对于widnows来说,对于mac来说是启动权限,之前的版本,我们比较麻烦的事情是需要下载正确的ruby版本才可以使用cmd,现在6.0版本之后,就不需要单独安装ruby了,新版取消了对ruby的依赖.新版cmd增加了对jre的默认安装,选择下载包的时候,可以直接下载带有jre的安装包,这样就不需要再单独安装jre

Python学习笔记(三十四)—内置模块(3)base64

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431954588961d6b6f51000ca4279a3415ce14ed9d709000 Base64是一种用64个字符来表示任意二进制数据的方法. 用记事本打开exe.jpg.pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进

[ExtJS5学习笔记]第三十三节 sencha extjs 5 grid表格导出excel

使用extjs肯定少不了使用表格控件,用到表格,领导们(一般)还是惯于使用excel看数据,所以用到extjs表格的技术猿们肯定也会有导出表格excel这一个需求,本文主要针对如何在用extjs将grid表格导出到excel,使用的是前端导出,不涉及后端. 本文目录 本文目录 源代码打包下载 将源代码嵌入到应用中 查看导出按钮以及导出效果 扩展支持sum统计和groupsum分组 源代码打包下载 本次使用的是github上的一个开源项目Exporter 下载地址:https://github.c

centos 监控cacti/nagios/zabbix 第三十四节课

centos   监控cacti/nagios/zabbix   第三十四节课 上半节课 下半节课 f

第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

第三百三十四节,web爬虫讲解2-Scrapy框架爬虫-Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻标题和rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息,那么这种一般都是 js 的 Ajax 动态请求生成的信息 我们以百度新闻为列: 1.分析网站 首先我们浏览器打开百度新闻,在网页中间部分找一条新闻信息 然后查看源码,看看在源码里是否有