导出Excel插件——Export-CSV ---20150610

出处:http://bbs.hcharts.cn/thread-99-1-1.html

导出Excel插件——Export-CSV

一、插件信息

二、原理解析
通过分析源码,其原理是遍历Highcharts的数据列,并取值构造成逗号分开的字符串,并提交到指定的导出服务器下载保存为.csv文件。

1、CSV

CSV即逗号分隔值文件格式,通常是纯文本文件。如果你的机器上装了Microsoft Excel的话,.csv 文件默认是被 Excel 打开的。

2、自定义导出服务器
Export-CSV导出服务器比较简单,实现代码如下

  1. <?php
  2. $csv = $_POST[‘csv‘];
  3. if ($csv) {
  4. header(‘Content-type: text/csv‘);
  5. header(‘Content-disposition: attachment;filename=chart.csv‘);
  6. echo $csv;
  7. }
  8. ?>

复制代码

自定义导出事件

  1. $("#download").click(function(){
  2. Highcharts.post(‘export-cvs.php‘, { //其中export-cvs.php即为上面代码
  3. csv: chart.getCSV()
  4. });
  5. })

复制代码

3、中文网提供的导出服务器
地址:http://export.hcharts.cn/cvs.php

实例:

  1. Highcharts.post(‘http://export.hcharts.cn/cvs.php‘, {
  2. csv: chart.getCSV()
  3. });

复制代码

补充:Office Excel打开时乱码问题解决办法

1、乱码分析
     我用记事本或WPS Excel打开导出的cvs文件时,中文不会乱码,而用Office的Excel打开时,中文就乱码。后来网上查了下,原因是Office的Excel默认是以ANSI 形式打开的,也就是对应中文GBK编码,而默认导出的是UTF-8格式,解决办法就是编码转换。

2、解决办法
     将获取的cvs代码转换为GBK编码即可,修改后的导出服务器代码如下:

PHP版:

  1. <?php
  2. /**
  3. * DISCLAIMER: Don‘t use [url=http://www.highcharts.com/studies/csv-export/csv.php]www.highcharts.com/studies/csv-export/csv.php[/url] in
  4. * production! This file may be removed at any time.
  5. * 由Highcharts中文网修改提供中文乱码解决办法
  6. */
  7. $csv = $_POST[‘csv‘];
  8. $csv = iconv("utf-8","gbk",$csv);//转换成GBK编码
  9. if ($csv) {
  10. header(‘Content-type: text/csv;charset=gbk‘);
  11. header(‘Content-disposition: attachment;filename=chart.csv‘);
  12. echo $csv;
  13. }
  14. ?>

复制代码

java版:

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String csv = new String(request.getParameter("csv").getBytes("utf-8"),"gbk");
  4. if(csv!=null && !"".equals(csv)) {
  5. response.setHeader("Content-type","text/csv");
  6. response.setHeader("Content-disposition", "attachment;filename=chart.csv");
  7. response.getWriter().print(csv);
  8. }
  9. %>

复制代码

另外,从提交cvs代码处转换编码也可实现。

补充:
java版的导出服务器代码如下:

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String csv = request.getParameter("csv");
  4. if(!"".equals(csv)) {
  5. response.setHeader("Content-type","text/csv");
  6. response.setHeader("Content-disposition", "attachment;filename=chart.csv");
  7. response.getWriter().print(csv);
  8. }
  9. %>

复制代码

时间: 2024-08-06 15:43:49

导出Excel插件——Export-CSV ---20150610的相关文章

php导出excel数据使用csv替代xls格式

php导出excel数据使用csv替代xls格式 一直以来需要将某些后台数据导出来以供运营人员查看,因为他们都用excel.所以最初的选择是用phpExcel这个工具包来实现导出数据为xls格式,后来发现数据量比较大的情况下(超过1W),就比较慢了. http://www.zroran.com/it/php/9.html 之前使用phpexcel的过程如下 $objPHPExcel = new PHPExcel(); $excelobj = $objPHPExcel->setActiveShee

bootstrap-table中导出excel插件bootstrap-table-export使用

一.加入依赖: <script src="/static/js/bootstrap-table-export.js"></script> 注意:网上很多版本中,只说明了添加这一个js依赖就好,但在使用过程中,由于会涉及到中文编码.以及bootstrap-table-export.js中继承的是tableExport.js,所以还需要添加下面几个依赖: <script src="/static/js/tableExport.js">

php,phpexcel插件导出excel使用

做了一个星期的导出excel,基本就是重复劳动,只需要完成一个,其它页面就是排版的问题了:比写静态页面还无聊: 网上excel插件应该蛮多的,之前发过一篇导出excel是以csv格式导出,这种方式导出excel有点事速度快,大批量导出数据效率高,跟导出txt文件差不多:缺点导出的文件数据没有格式,不能按照页面样式去导出数据: excel插件缺点就是导出的数据不能太多, 之前测试数据达到几千条基本上就跑不动了, 可能跟服务器性能有关, 但也能说明问题,就是插件对服务器资源消耗很大:我这边应该专门有

Oracle导出excel

oracle导出excel(非csv)的方法有两种,1.使用sqlplus  spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件:sql脚本文件和格式设置文件. 去除冗余信息,main.sql --main.sql 注意,需要在sqlplus下运行 非plsql命令行下 set linesize 200 set term off verify off feedback off pagesize 999 set markup h

框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)

知识点: 批量导入(ocupload插件,pinyin4J /POI解析Excel(apache POI) /区域分页查询 /Combobox下拉框 /分区组合条件分页查询(ajax) /分区数据导出(Excel下载) BOS项目笔记第4天 1.    区域批量导入功能 *Ajax不支持文件上传. *上传并且不刷新上传页面原理: Target到一个0,0,0的隐藏iframe里,造成一个没有刷新的假象 <form target="myIframe" action="ab

jquery.fileDownload.js插件导出excel

因为使用ajax导出excel会出现问题,所以现在使用jQuery.fileDownload.js插件来解决导出excel的问题 http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads/ 在页面引入jquery.fileDownload.js插件 1.如下所示 <script type="text/JavaScript" src="${re

Vue插件之导出EXCEl

本周项目需要实现导出列表数据的功能,在githup上找到了一个比较好用的插件~ 简单的整理一下,希望对各位有所帮助. githup地址 使用方法: 1.npm安装依赖 npm install vue-json-excel 2.项目主文件入口main.js全局引入 import JsonExcel from 'vue-json-excel' Vue.component('downloadExcel', JsonExcel) 3.直接在项目中使用 <download-excel :data="

goalng导出excel(csv格式)

最近项目中有个小需求,需要将查询结果导出到excel.之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encoding/csv的包,看了下发现可以导出csv文件,大家都知道csv文件其实就是文本格式的excel文件,可以直接通过excel打开或是导入excel. 看起来挺好的,问题如愿解决,但是事实证明对已一个还不成熟的语言或是库最好还是先测一下的好.兴冲冲的卸了测试例子,成功导出了一个text.csv文件,一

大量数据导出excel(csv)的实现

<?php /** * 大量数据导出excel(csv)的实现. * Created by PhpStorm. * User: Huming * Date: 2017-04-16 * Time: 14:04 * */ //使用MS sqlserver数据测试的 require_once 'MSSqlServerHelper.php'; $sqlHelper = new MSSqlServerHelper(); set_time_limit(0); ini_set('memory_limit',