网页前端导出CSV,Excel格式文件

通过自己实际测试有以下几种方法

方法一通过a标签实现,把要导出的数据用“\n”和“,”拼接成一个字符串,然后把字符串放到href中,这种方法只支持chrome,firefox等非ie浏览器

html页面代码如下

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <meta name="author" content="oscar999">
        <title>导出CSV文件</title>
        <script>
        function exportCsv(obj){
            //title ["","",""]
            var title = obj.title;
            //titleForKey ["","",""]
            var titleForKey = obj.titleForKey;
            var data = obj.data;
            var str = [];
            str.push(obj.title.join(",")+"\n");
            for(var i=0;i<data.length;i++){
                var temp = [];
                for(var j=0;j<titleForKey.length;j++){
                    temp.push(data[i][titleForKey[j]]);
             }
             str.push(temp.join(",")+"\n");
         }
         var uri = ‘data:text/csv;charset=utf-8,‘ + encodeURIComponent(str.join(""));
         var downloadLink = document.createElement("a");
         downloadLink.href = uri;
         downloadLink.download = "export.csv";
         document.body.appendChild(downloadLink);
         downloadLink.click();
         document.body.removeChild(downloadLink);
      }
      window.onload = function(){
          document.getElementById("test").onclick = function(){
              exportCsv({
                  title:["第一列","第二列"],
                  titleForKey:["num1","num2"],
                  data:[
                     {
                      num1:"123",
                      num2:"fff"
                     },{
                      num1:"123",
                      num2:"fff"
                     },{
                      num1:"123",
                      num2:"fff"
                     }]
              });
         }
      }
      </script>
      </head>
<body>
  <a id="test" href="javascript:;">导出</a>
</body>
</html>

第二种方法通过ActiveXObject("Excel.Application")实现,这种方法只支持ie浏览器

html页面代码如下

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IE导出CSV</title>
<script>
window.onload = function(){
    function exportCsv(){
        //创建AX对象excel
        var oXL = new ActiveXObject("Excel.Application");
        //获取workbook对象
        var oWB = oXL.Workbooks.Add();
        //激活当前sheet
        var oSheet = oWB.ActiveSheet;
        var Lenr = [["标题一","标题二","标题三"],["4","5","6"],["1","2","3"]];
        for (i = 0; i < Lenr.length; i++) {
            for (j = 0; j < Lenr[i].length; j++) {
                oSheet.Cells(i + 1, j + 1).value = Lenr[i][j];
            }
        }
        //设置excel可见属性
        oXL.Visible = true;
    }
    document.getElementById("J_export").onclick = function(){
        exportCsv();
    }
}
</script>
</head>
<body>
   <a href="javascript:;" id="J_export">导出</a>
</body>
</html>

第三种方法也是目前项目中正在使用的

通过使用FileSave.js实现FileSave.js插件https://github.com/eligrey/FileSaver.js/

html页面代码如下

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IE导出CSV</title>
<script src="FileSaver.js"></script>
<script>
window.onload = function(){
    function exportCsv2(){
        //Excel打开后中文乱码添加如下字符串解决
        var exportContent = "\uFEFF";
        var blob = new Blob([exportContent+"标题,标题,标题\n1,2,3\n4,5,6"],{type: "text/plain;charset=utf-8"});
        saveAs(blob, "hello world.csv");
    }
    document.getElementById("J_export").onclick = function(){
        exportCsv2();
    }
}
</script>
</head>
<body>
    <a href="javascript:;" id="J_export">导出</a>
</body>
</html>
时间: 2024-08-29 00:31:47

网页前端导出CSV,Excel格式文件的相关文章

将able导出为excel格式文件

html: <table cellpadding="0" cellspacing="0" class="data_table" id="data_table"> <tr> <th>日期</th> <th>星期</th> <th>渠道</th> <th>服务区</th> <th>总用户</th

使用PHPExcel导入导出excel格式文件

使用PHPExcel导入导出excel格式文件 作者:zccst 由于导出使用较多,下面是导出实现过程. 第一步,将PHPExcel的源代码复制到项目的lib下 文件包括:PHPExcel.php 和 文件夹PHPExcel 源代码见附件 注1:源代码是zip格式,能在windows和linux通用. 注2:PHPExcel.zip是干净代码,可以直接引用.PHPExcel2.zip有svn记录,不适合直接引用. 第二步:在需要导出的handler页面中引用 1,在头部引入三个文件 Php代码 

PB导出数据excel格式dw2xls

PB导出数据excel格式dw2xls 使用DW2XLS控件 语法 uf_save_dw_as_excel ( dw, filename ) 參数 dw A reference to the datawindow object filename A string whose value is the name of the file you want to create. If filename is not on the operating system's search path, you

前端js导出CSV,Excel格式文件

通过自己实际测试有以下几种方法 方法一通过a标签实现,把要导出的数据用"\n"和","拼接成一个字符串,然后把字符串放到href中,这种方法只支持chrome,firefox等非ie浏览器 html页面代码如下 <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf

web前端导出csv文件

前言 导出文件,使用最多的方式还是服务器端来处理.比如jsp 中使用response 的方式. 但是,有时候可能就想使用web 前端是否也可以把页面上的内容导出来呢? 比如说,导出页面的一个表格. 这个需求肯定是有答案的,只是对于各浏览器处理会稍微不一样.(主要是IE 和其他浏览器的区别). 在IE中使用ActiveXObject 实现,在firefox 和Chrome 中使用  a 标签(或者js)就可以实现了. 这里主要讲一下其他浏览器中的实现. 使用 a 标签实现方式 直接上例子: [ht

在Java中导出word、excel格式文件时JSP页面头的设置

我们在JSP中往往会把一些表格里的东西需要导出到本地,一般都是导成word.excel格式的文件.这只需要在JSP页面头设置及在<head></head>标签中添加下面的代码: 导出为excel: <% response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition","atta

前端 导出为Excel 数据源为table表格 并且table中含有图片

图片导出到Excel,图片的路径得调整一下, 把 <img src="1.jpg" id="img1" /> 改为: <img src="http://localhost:2079/%E6%B5%8B%E8%AF%951/1.jpg" /> 这样Excel导出的时候就能包含图片了,但不是完美的解决方案. 导出注意事项: 图片并不是实实在在存入Excel中的,应该仅仅只是存的图片路径 图片的src地址必须是完整的,需要包含h

前端JS脚本将网页表格导出为Excel

话不多说,上代码! <!DOCTYPE> <html> <head> <title>Excel Test</title> </head> <body> <div style="width:100%;padding:40px;"> Excel Test </div> <table id="excel"> <tr> <td>Na

jexcel+struts2实现上传下载,,即模型数据导出为Excel格式和上传Excel格式的文件

3.将数据查询出来,自己先定义好表头的列数及表头名,将将每个对象的属性转换为一个String[],然后将所有转换成的String[]存入到List<String[]>中,并通过jexcel对表头String[]和list<String[]>进行循环遍历,将每个子字符串转换成Excel中的一个单元格,并写出到输出流中,最后再将该输出流转换为输入流返回到download视图中,最后在访问页面时就会以下载的方法呈现.download视图由struts.xml中配置各项参数.,该downl