今天在做项目的时候,遇到了前端下载Excel的功能,结果原先的代码,如下:

function generate_excel(tableid) {
        var table = document.getElementById(tableid);
        var html = table.outerHTML;
        window.open('data:application/vnd.ms-excel;base64,' + base64_encode(html));
}

此种写法,只能支持FF,chrome,在IE下无法支持。在网上搜索了一下,也无法找到比较好的jquery插件,能够同时跨三种平台,通过jquery方式将html的table导出Excel。

后来机缘巧合之下,发现一个Flash,能够同时支持各种浏览器。对于并不排斥使用的flash的网站来说,也许是一个解决方案。

不过,目前使用下来,该方法有两个缺点

1.firefox中需要允许该flash运行

2.IE中导出,excel行高稍许有些问题

下面是使用方法

flash的下载地址:https://github.com/dcneiner/Downloadify

示例代码:

html中

<p id="downloadify">

<object id="downloadify_obj" width="100" height="30" type="application/x-shockwave-flash" name="downloadify_obj" data="../../Scripts/TableExport/downloadify.swf">
      <param name="allowScriptAccess" value="always">
      <param name="wmode" value="transparent">
      <param name="flashvars" value="queue_name=downloadify&width=100&height=30&downloadImage=images/download.png">
      </object>
</p>

其中,data="../../Scripts/TableExport/downloadify.swf",downloadImage=images/download.png"   需要改成自己的相应路径

js中

<script type="text/javascript">// <![CDATA[
     Downloadify.create('downloadify', {
          filename: function () {
               return "Data.xls";
          },
          data: function () {
               var table = document.getElementById('Table');
               var html = table.outerHTML;
               return html;
          },
          onComplete: function () {
               alert('Your File Has Been Saved!');
          },
          onCancel: function () {
               alert('You have cancelled the saving of this file.');
          },
          onError: function () {
               alert('You must put something in the File Contents or there will be nothing to save!');
          },
          transparent: false,
          swf: '../../Scripts/TableExport/downloadify.swf',
          downloadImage: '../../Scripts/TableExport/download.png',
          width: 100,
          height: 30,
          transparent: true,
          append: false
});
// ]]></script>

其中,

filename的名字自己修改,

data中,写自己table的名称

swf: '../../Scripts/TableExport/downloadify.swf',
downloadImage: '../../Scripts/TableExport/download.png',

写自己对应的路径。其他的可以自己网上查询api

支持IE,FireFox,Chrome三大主流浏览器,通过js+Flash方式将table导出Excel文件的更多相关文章

  1. 关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器

    这篇文章主要介绍了关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器,需要的朋友可以参考下.希望对大家有所帮助   Firefox 和 IE 的浏览器各自实现了input历史记录的功能 ...

  2. HTML导出Excel文件(兼容IE及所有浏览器)

    注意:IE浏览器需要以下设置: 打开IE,在常用工具栏中选择“工具”--->Internet选项---->选择"安全"标签页--->选择"自定义级别&q ...

  3. Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

    问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下 ...

  4. 主流浏览器Css&js hack写法

    参考: BROWSER HACKS 主流浏览器的Hack写法

  5. 支持 Firefox、Chrome 等主流浏览器的全站变灰 CSS 代码

    <style> html{ -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grays ...

  6. javascript 实现禁止右键,复制,选取文本 (兼容firefox,IE,chrome等主流浏览器)

    1. JS 禁止右键 <script type="text/javascript">document.oncontextmenu=function(e){return ...

  7. 基于js的自适应、多样式轮播图插件(兼容IE8+、FF、chrome等主流浏览器)

    插件github地址:https://github.com/pomelott/slider-plug_in 使用方式: slider plug-in 左右滑动的自适应.多样式全能插件.多次调用时只需传 ...

  8. 关于 IE firefox Chrome下的通过用js 关闭窗口的一些问题

    首先IE是可以通过window.close()来关闭浏览器窗口的,但是在firefox和Chrome下是无效的,原因在于: ~~~ie可直接<button onclick="windo ...

  9. chrome和搜狗浏览器的js问题

    1.在chrome中如果是js添加颜色必须用"#00CC00",必须加#号...不然会出问题,但是在搜狗浏览器中可以没有#号也能正确识别...

随机推荐

  1. android事件分发笔记

    1.SimpleOnGestureListener 遇到的问题: 自己定义一个按钮继承自Button,一开始改变按钮颜色的操作放在onTouchEvent的ATION_DOWN里触发. 这时问题来了, ...

  2. 【C语言】-循环结构-for语句

    for语句: for (表达式1;表达式2;表达式3) { 循环语句 } 表达式1 给循环变量赋初值 表达式2 为循环条件 表达式3 用来修改循环变量的值,称为循环步长. for语句的执行流程: 例: ...

  3. OpenCV学习笔记:MAT解析

    在2001年刚刚出现的时候,OpenCV基于 C 语言接口而建.为了在内存(memory)中存放图像,当时采用名为 IplImage 的C语言结构体,时至今日这仍出现在大多数的旧版教程和教学材料.但这 ...

  4. xml--通过SAX解析XML

    SAX的全称是Simple APIs for XML,也即XML简单应用程序接口.与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式.当使用SAX分析器对XML文档进行 ...

  5. 运用集合来做一个DVD管理器(全代码)

    package DVD;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Array ...

  6. CSS modules 与 React中实践

    最近一直在学习React,看上去蛮简单的内容,其实学习曲线还是比较高的. 目前学到css绑定的问题,看到有一篇好的文章,就转过来了. CSS 模块化的解决方案有很多,但主要有两类.一类是彻底抛弃 CS ...

  7. php中带mb的字符串处理函数

    int strlen ( string $string ) int mb_strlen ( string $str [, string $encoding ] ) encoding参数为字符编码.如果 ...

  8. 让Visual Studio 2015 支持ASP.NET MVC4.0.0.1

    近日装上了Visual Studio 2015 ,打开之前vs2013创建的MVC4的项目发现无法编译通过,提示System.Web.MVC,System.Web.WebPages 等找不到,网上搜索 ...

  9. 转发 Mongodb 和 Hbase的区别

    原始网址:http://hi.baidu.com/i1see1you/item/783a701f39a87549e75e06ea 1.Mongodb bson文档型数据库,整个数据都存在磁盘中,hba ...

  10. jquery ajax 报交请求返回 HTTP 400 错误

    提交请求的AJAX代码如下: 点击(此处)折叠或打开 $.ajax({ url: "${ctx}/selfhelp/userAttributeAnalysis/userAttributeLi ...