echarts自带有下载为图片的功能,但是没有下载为excel表格的功能,个人觉得下载为表格更为需要,所以写了个工具,此工具应用有局限性,只能用于柱形图和折线图,option的series要是如下形式:

  

      series: [
{
name: '初级人才',
type: 'bar',
data: [['部门1',1500], ['部门2',1500], ['部门3',1500], ['部门4',1500], ['部门5',1500], ['部门6',1500], ['部门7',1500], ['部门8',1500], ['部门9',1500], ['部门11',1500], ['部门12',1500], ['部门13',1500], ['部门14',1500], ['部门15',1500]]
},
{
name: '中级人才',
type: 'bar',
data: [['部门1',1500], ['部门2',1500], ['部门3',1500], ['部门4',1500], ['部门5',1500], ['部门6',1500], ['部门7',1500], ['部门8',1500], ['部门9',1500], ['部门11',1500], ['部门12',1500], ['部门13',1500], ['部门14',1500], ['部门15',1500]] },
{
name: '高级人才',
type: 'bar',
data: [['部门1',1500], ['部门2',1500], ['部门3',1500], ['部门4',1500], ['部门5',1500], ['部门6',1500], ['部门7',1500], ['部门8',1500], ['部门9',1500], ['部门11',1500], ['部门12',1500], ['部门13',1500], ['部门14',1500], ['部门15',1500]]
}
]

  该工具主要是利用series来生成excel所以对series的格式有一定要求。

  在toolbox的feature属性中增加该工具配置:

  

          /*自定义工具,下载为xls*/
myExcl:{
show:true,
title:'下载为excel',
icon:'path://M877.6 289.5L656 68.4c-2.8-2.8-6.6-4.4-10.6-4.4h-463c-22.3 0-40.5 18.1-40.5 40.4v815.2c0 22.3 18.1 40.4 40.5 40.4h659.1c22.3 0 40.5-18.1 40.5-40.4V300.1c0-4-1.6-7.8-4.4-10.6zM641.2 96.1l207.6 207.2H641.2V96.1zM841.5 930h-659c-5.8 0-10.5-4.7-10.5-10.4V104.4c0-5.6 4.8-10.4 10.5-10.4h428.8v224.3c0 8.3 6.7 15 15 15H852v586.3c0 5.7-4.7 10.4-10.5 10.4z M447.9 520.2h-32l-44.8 74.2c-3.3 5.7-6 11-8.3 16.1h-0.6c-2.5-5.9-5-11-7.6-15.4l-42.8-74.9h-34.3l66.3 107.7-72.1 108.6H306l49.8-81.3c3.2-6.8 4.8-10.6 5-11.3h0.7c2.1 5.6 3.8 9.3 4.9 11.2l48.4 81.4h34l-68.7-109.1 67.8-107.2zM509 520.2h-28v216.3h114.4v-24.7H509zM693.9 616.5c-19.3-9.5-31.9-17-37.6-22.5-5.8-5.5-8.7-12.6-8.7-21.4 0-9.9 4.2-17.6 12.5-23.1s19.1-8.3 32.4-8.3c20 0 36.5 4.5 49.5 13.5v-30.4c-10.1-5.2-25.9-7.8-47.4-7.8-22 0-40.3 5.3-54.7 15.8-14.5 10.5-21.7 24.8-21.7 42.7 0 11.9 3.5 22.5 10.4 31.8s21.2 19.3 43 30.1c15.7 7.7 26.4 13.5 32 17.2 5.7 3.7 10.2 8 13.4 12.8 3.3 4.8 4.9 10.3 4.9 16.3 0 21.6-15.2 32.4-45.6 32.4-10 0-20.5-1.9-31.6-5.6-11.1-3.7-20-8.5-26.6-14.2v31.8c5.2 3.5 13.5 6.5 25 8.9 11.4 2.4 21.4 3.6 30 3.6 24.5 0 43.7-5.1 57.5-15.2 13.8-10.1 20.7-24.7 20.7-43.7 0-12.7-4.2-24.1-12.7-34.2-8.6-10.2-23.4-20.3-44.7-30.5z',
onclick:function (data) {
var $form=document.createElement("form");
var $input=document.createElement("input");
$form.method="post";
$form.action="down.do"
$form.style="display:none;"
$input.name='data';
$input.type="textarea";
$input.value=JSONUtil.toJson(data.getOption().series);//将series转成JSON字符串
$form.append($input);
$("body").append($form)
$form.submit();
$form.remove();
}
}

        后台如下写:

  

/**
* @Title down
* @Descript :下载统计数据
* @date : 2017-09-05 15:26:39
* @param
* @return java.lang.String
* @throws
* @version V1.0
*/
@RequestMapping("down.do")
public String down(HttpServletRequest request , HttpServletResponse response) throws IOException {
List list=getJsonStrToList(request.getParameter("data"));
response.setHeader("Content-Disposition",
"attachment;filename=" +
new String( ("人员统计" + ".xls").getBytes(),
"iso-8859-1"));
response.setContentType("application/vnd.ms-excel");
HSSFWorkbook workbook=echartsToExcel(list);
workbook.write(response.getOutputStream());
return null;
} /**
* @Title echartsToExcel
* @Descript :柱形echarts转成excel
* @date : 2017-09-07 22:20:45
* @param
* @return org.apache.poi.hssf.usermodel.HSSFWorkbook
* @throws
* @version V1.0
*/
private HSSFWorkbook echartsToExcel(List list){
HSSFWorkbook workbook=new HSSFWorkbook();
HSSFSheet sheet=workbook.createSheet("人员统计");
HSSFRow row;
HSSFCell cell;
HSSFCell fCell;
HSSFRow fRow;
List data;
List listTemp;
Map map;
fRow=sheet.createRow(0);
for(int i=0;i<list.size();i++){
map=(Map)list.get(i);
row=sheet.createRow(i+1);
cell=row.createCell(0);
if(fRow.getCell(0)==null){
fCell=fRow.createCell(0);
fCell.setCellValue("");
}
cell.setCellValue(map.get("name").toString());
data=ValidateUtil.isEmpty(map.get("data"))?null:(List)map.get("data");
if(ValidateUtil.isEmpty(data))continue;
for(int j =0;j<data.size();j++){
listTemp=ValidateUtil.isEmpty(data.get(j))?null: (List) data.get(j);
if(ValidateUtil.isEmpty(listTemp))continue;
if(fRow.getCell(j+1)==null){
fCell=fRow.createCell(j+1);
fCell.setCellValue(listTemp.get(0).toString());
}
cell=row.createCell(j+1);
cell.setCellValue(Long.parseLong(listTemp.get(1).toString()));
}
}
return workbook;
}

echarts的下载为excel小工具的更多相关文章

  1. 批量下载google 字体小工具

    在项目开发中,我们经常用外国的框架,如bootstrap.nodejs.angularjs 时候经常要配套google 字体等资源, 但是由于国内网络原因,经常框架跑起来,网页在请求google 字体 ...

  2. python+xlsxwriter+PIL自动压图贴图到Excel小工具

    一.环境 windows10/mac + python3.6 python第三方库 xlsxwriter.PIL.argparse 二.需求 1.运行每条测试case成功与否都需要把截图放在img文件 ...

  3. AWS成本估算的相关小工具

    1.AWS-partner :云势数据做的在线小工具,有微信版本可以使用,但是涉及的服务很少,更新慢,型号缺,界面不友好.不是很理想,连接如下:     https://www.goclouds.cn ...

  4. 懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法

    在开发的过程中,我们为了节约时间,往往会将大量重复机械的代码封装,考虑代码的复用性,这样我们可以节约很多时间来做别的事情.最近跳槽到一节webform开发的公司,主要是开发自己公司用的ERP.开始因为 ...

  5. 【游戏开发】Excel表格批量转换成CSV的小工具

    一.前言 在工作的过程中,我们有时可能会面临将Excel表格转换成CSV格式文件的需求.这尤其在游戏开发中体现的最为明显,策划的数据文档大多是一些Excel表格,且不说这些表格在游戏中读取的速度,但就 ...

  6. 懒人小工具1:winform自动生成Model,Insert,Select,Delete以及导出Excel的方法

       懒人小工具2:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法    github地址:https://github.com/Jimmey-Jiang/J ...

  7. 分享一个小工具:Excel表高速转换成JSON字符串

    在游戏项目中一般都须要由策划制作大量的游戏内容,当中非常大一部分是使用Excel表来制作的.于是程序就须要把Excel文件转换成程序方便读取的格式. 之前项目使用的Excel表导入工具都是通过Offi ...

  8. 懒人小工具:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法

    之前写了篇文章,懒人小工具:[自动生成Model,Insert,Select,Delete以及导出Excel的方法](http://www.jianshu.com/p/d5b11589174a),但是 ...

  9. Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载

    1.简要说明: Apache Bench 是Apache的网站性能测试小程序,Windows平台下的程序名简称ab.exe,要想获得这个80k的可执行程序,用户需要下载整个Apache Httpd软件 ...

随机推荐

  1. 怎么让composer加速(转)

    composer 在install的时候会做这几个事情: 去packagist.org中寻找对应需要的包的版本信息和下载地址 循环下载对应的包 解压安装对应的包 我们平时使用composer慢就可能在 ...

  2. priority_deque作为Timer时间队列底层容器的一些思考

    https://www.bbsmax.com/A/D854VkZxzE/ 设置底层容器可以分离出两个逻辑上独立的问题: >如何存储构成优先级队列(容器)的实际元素,以及>如何组织这些元素以 ...

  3. node——express框架

    express基于Node.js是一个web开发框架,web框架是为了我们开发更方便,更简洁,更高效. 英文网址 中文网址 安装: npm install express --save express ...

  4. 4.1、Ansible模块

    ansible-doc -l    列出所有模块 ansible-doc 模块名    查看模块的help说明 ansible-doc -s  module_name:获取指定模块的使用信息 ***文 ...

  5. JavaScript链式编程模拟Jquery函数

    <span>Hello,World!</span> <script type="text/javascript"> Jq = function ...

  6. 2014年spark开发人员大赛火热进行中!

    "发现最有正能量的网络达人".Spark开发人员大赛火热进行! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3d0dHoxOTc0/ ...

  7. POJ 2137

    水,dp[i][j][k],设为当前为i个牛,在它喜欢的j个位置,而第一个牛在k个位置,很明显了,其实不过是枚举. #include <iostream> #include <cst ...

  8. Google C++ style guide——格式

    1.行长度 每一行代码字符数不超过80. 例外: 1)假设一行凝视包括了超过80字符的命令或URL,出于复制粘贴的方便能够超过80字符: 2)包括长路径的能够超出80列,尽量避免: 3)头文件保护能够 ...

  9. spring batch(二):核心部分(1):配置Spring batch

    spring batch(二):核心部分(1):配置Spring batch 博客分类: Spring 经验 java   chapter 3.Batch configuration 1.spring ...

  10. java连接mysql数据库增删改查操作记录

    1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...