广告
返回顶部
首页 > 资讯 > 精选 >JS怎么实现导出Excel和CSV文件
  • 142
分享到

JS怎么实现导出Excel和CSV文件

2023-06-30 12:06:26 142人浏览 独家记忆
摘要

这篇文章主要介绍了js怎么实现导出excel和CSV文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS怎么实现导出Excel和CSV文件文章都会有所收获,下面我们一起来看看吧。一、js导出Excel<

这篇文章主要介绍了js怎么实现导出excel和CSV文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS怎么实现导出Excel和CSV文件文章都会有所收获,下面我们一起来看看吧。

一、js导出Excel

<html><head>  </head><body><script type="text/javascript" src="./xlsx.core.min.js"></script><script type="text/javascript">function openDownloadDialog(url, saveName) {    if (typeof url == 'object' && url instanceof Blob) {        url = URL.createObjectURL(url); // 创建blob地址    }    var aLink = document.createElement('a');    aLink.href = url;    aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效    var event;    if (window.MouseEvent) event = new MouseEvent('click');    else {        event = document.createEvent('MouseEvents');        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);    }    aLink.dispatchEvent(event);}// 将一个sheet转成最终的excel文件的blob对象,然后利用URL.createObjectURL下载function sheet2blob(sheet, sheetName) {    sheetName = sheetName || 'sheet1';    var workbook = {        SheetNames: [sheetName],        Sheets: {}    };    workbook.Sheets[sheetName] = sheet;    // 生成excel的配置项    var wopts = {        bookType: 'xlsx', // 要生成的文件类型        bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本iOS设备上有更好的兼容性        type: 'binary'    };    var wbout = XLSX.write(workbook, wopts);    var blob = new Blob([s2ab(wbout)], { type: "application/octet-stream" });    // 字符串转ArrayBuffer    function s2ab(s) {        var buf = new ArrayBuffer(s.length);        var view = new Uint8Array(buf);        for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;        return buf;    }    return blob;}</script><script type="text/javascript">var exportDataSource = [{                    name: '路人甲',                    phone: '123456789',                    email: '000@123456.com'                }, {                    name: '炮灰乙',                    phone: '123456789',                    email: '000@123456.com'                }, {                    name: '土匪丙',                    phone: '123456789',                    email: '000@123456.com'                }, {                    name: '流氓丁',                    phone: '123456789',                    email: '000@123456.com'                }, ]; //导出JSON数据源function exportExcel() {            var excelItems = [];            for (let i = 0; i < exportDataSource.length; i++) {                if (exportDataSource[i].name != "") {                    excelItems.push({                        "姓名": exportDataSource[i].name,                        "电话": exportDataSource[i].phone,                        "邮箱": exportDataSource[i].email                    }); //属性                }            }            var sheet = XLSX.utils.json_to_sheet(excelItems);            openDownloadDialog(sheet2blob(sheet), 'exportdata.xlsx');        }</script><a  onclick="exportExcel()">导出下载</a></body></html>

二、js实现json导出csv

<html><head>  <p >使用a标签方式将json导出csv文件</p>  <button onclick='tableToExcel()'>导出</button></head><body>  <script>                function tableToExcel(){      //要导出的json数据      const jsonData = [        {          name:'路人甲',          phone:'123456789',          email:'000@123456.com'        },        {          name:'炮灰乙',          phone:'123456789',          email:'000@123456.com'        },        {          name:'土匪丙',          phone:'123456789',          email:'000@123456.com'        },        {          name:'流氓丁',          phone:'123456789',          email:'000@123456.com'        },      ]      //列标题,逗号隔开,每一个逗号就是隔开一个单元格      let str = `姓名,电话,邮箱\n`;      //增加\t为了不让表格显示科学计数法或者其他格式      for(let i = 0 ; i < jsonData.length ; i++ ){        for(let item in jsonData[i]){            str+=`${jsonData[i][item] + '\t'},`;             }        str+='\n';      }      //encodeURIComponent解决中文乱码      let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);      //通过创建a标签实现      let link = document.createElement("a");      link.href = uri;      //对下载的文件命名      link.download =  "json数据表.csv";      document.body.appendChild(link);      link.click();      document.body.removeChild(link);    } </script></body></html>

三、js实现json导出csv

<html><head>  <p >使用table标签方式将json导出xls文件</p>  <button onclick='tableToExcel()'>导出</button></head><body>  <script>                function tableToExcel(){      //要导出的json数据      const jsonData = [        {          name:'路人甲',          phone:'123456',          email:'123@123456.com'        },        {          name:'炮灰乙',          phone:'123456',          email:'123@123456.com'        },        {          name:'土匪丙',          phone:'123456',          email:'123@123456.com'        },        {          name:'流氓丁',          phone:'123456',          email:'123@123456.com'        },      ]      //列标题      let str = '<tr><td>姓名</td><td>电话</td><td>邮箱</td></tr>';      //循环遍历,每行加入tr标签,每个单元格加td标签      for(let i = 0 ; i < jsonData.length ; i++ ){        str+='<tr>';        for(let item in jsonData[i]){            //增加\t为了不让表格显示科学计数法或者其他格式            str+=`<td>${ jsonData[i][item] + '\t'}</td>`;             }        str+='</tr>';      }      //Worksheet名      let worksheet = 'Sheet1'      let uri = 'data:application/vnd.ms-excel;base64,';       //下载的表格模板数据      let template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"       xmlns:x="urn:schemas-microsoft-com:office:excel"       xmlns="Http://www.w3.org/TR/REC-html40">      <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>        <x:Name>${worksheet}</x:Name>        <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>        </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->        </head><body><table>${str}</table></body></html>`;      //下载模板      window.location.href = uri + base64(template)    }    //输出base64编码    function base64 (s) { return window.btoa(unescape(encodeURIComponent(s))) }</script></body></html>

四、js实现Tab转为Excel

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>excel 导出测试</title>    <style>        table {            border-collapse: collapse;            text-align: center;            vertical-align: middle;            width: 800px;            font-size: 20px;        }                button {            height: 30px;            width: 100px;            margin: 20px 20px;            background: yellowgreen;            border-radius: 10px;            outline: none;        }                input {            height: 30px;            padding-left: 10px;            margin: 10px;        }    </style></head><body>    <div id="wrap" >        <h4>js脚本 导出excel测试</h4>        <table id="tb" border="1" cellspacing="0" cellpadding="0">            <thead>                <tr>                    <th>ID</th>                    <th>姓名</td>                        <th>年龄</td>                            <th>座右铭</th>                </tr>            </thead>            <tbody>                <tr>                    <td>1</td>                    <td>张三</td>                    <td>18</td>                    <td>走的人多了,变成了路。</td>                </tr>                <tr>                    <td>2</td>                    <td>李四</td>                    <td>88</td>                    <td>人人都有自己走的路,哪条属于自己呢?</td>                </tr>                <tr>                    <td>3</td>                    <td>王五</td>                    <td>81</td>                    <td>走别人的路,让他没道可走!</td>                </tr>            </tbody>        </table>        <label>            姓名:<input type="text" autocomplete id="name" placeholder="请输入您的姓名..." >        </label>        <label>            年龄:<input type="text" autocomplete id="age" placeholder="请输入您的年龄...">        </label>        <label>            座右铭:<input type="text" autocomplete id="sex" placeholder="请输入您的座右铭..." >        </label>        <button id="add">添加信息</button>        <button id="out" onclick="btn_export()">导出文件</button>    </div>    <script src="./xlsx.core.min.js"></script>    <script src="./Jquery.min.js"></script>    <script src="./excel.js"></script>    <script>        function btn_export() {            var table = document.querySelector("#tb");            var sheet = XLSX.utils.table_to_sheet(table); //将一个table对象转换成一个sheet对象            openDownloadDialog(sheet2blob(sheet), 'excel.xlsx');        }        var id = $("input").length + 1;        $(function() {            $("#add").click(function() {                var name = $("#name").val();                var age = $("#age").val();                var sex = $("#sex").val();                $("tbody").append("<tr><td>" + id + "</td><td>" + name + "</td> <td>" + age + "</td> <td>" + sex + "</td></tr>");                id++;                $("input").val('');            });        })    </script></body></html>

关于“JS怎么实现导出Excel和CSV文件”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JS怎么实现导出Excel和CSV文件”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: JS怎么实现导出Excel和CSV文件

本文链接: https://www.lsjlt.com/news/328609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS怎么实现导出Excel和CSV文件
    这篇文章主要介绍了JS怎么实现导出Excel和CSV文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS怎么实现导出Excel和CSV文件文章都会有所收获,下面我们一起来看看吧。一、js导出Excel<...
    99+
    2023-06-30
  • JS实现导出Excel和CSV文件操作
    一、js导出Excel <html> <head> </head> <body> <script type="text/j...
    99+
    2022-11-13
  • React怎么实现导入导出Excel文件
    这篇文章主要介绍“React怎么实现导入导出Excel文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React怎么实现导入导出Excel文件”文章能帮助大家解决问题。表示层这里我是使用的是ant...
    99+
    2023-06-05
  • React实现导入导出Excel文件
    目录表示层 业务层 核心插件xlsx excel 导入 excel 导出 excel 导出插件(js-export-excel) 实现效果结语 表示层 这里我是使用的是antd的U...
    99+
    2022-11-12
  • JavaScript实现excel文件导入导出
    目录一、需求场景描述1.此时前端上传解析excel文件可能更合适2.此时前端下载excel文件可能优雅一些二、实现思路分析1.导入excel文件实现思路分析2.导出excel文件实现...
    99+
    2022-11-13
  • MySQL中怎么导入导出CSV文件
    本篇文章为大家展示了MySQL中怎么导入导出CSV文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 MySQL自己提供了导入导出的工具,但有时我们需要仅仅导入导...
    99+
    2022-10-18
  • 如何使用PHP原生来导出Excel和CSV文件
    这篇文章主要介绍“如何使用PHP原生来导出Excel和CSV文件”,在日常操作中,相信很多人在如何使用PHP原生来导出Excel和CSV文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用PHP原生来导...
    99+
    2023-06-20
  • 使用apache poi怎么实现导出excel文件
    使用apache poi怎么实现导出excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码如下:package com.icourt.util;import org....
    99+
    2023-05-31
    apachepoi excel
  • PHP网页怎么导出和导入excel文件
    本篇内容主要讲解“PHP网页怎么导出和导入excel文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP网页怎么导出和导入excel文件”吧!导出和导入表单代码:<p sty...
    99+
    2023-06-04
  • EasyExcel实现Excel文件导入导出功能
    一、EasyExcel简介 Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的fu...
    99+
    2023-09-15
    excel java Powered by 金山文档
  • PHP中怎么批量导出csv文件
    PHP中怎么批量导出csv文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。PHP批量导出csv文件的主要程序部分:< php  funct...
    99+
    2023-06-17
  • vue怎么实现二进制流文件导出excel
    本篇内容主要讲解“vue怎么实现二进制流文件导出excel”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么实现二进制流文件导出excel”吧!vue二进制流文件导出excel问了一下其他...
    99+
    2023-06-30
  • 金山文档怎么导出excel文件
    金山文档导出excel文件的方法:1、打开金山文档,登录金山文档账户,并选择要导出为Excel文件的文档;2、选择数据要导出的范围,在文档中,选中要导出的数据区域;3、点击“导出”按钮,然后选择“导出为Excel”;4、选择导出文件的位置和...
    99+
    2023-08-03
  • mysql实现查询结果导出csv文件及导入csv文件到数据库操作
    本文实例讲述了mysql实现查询结果导出csv文件及导入csv文件到数据库操作。分享给大家供大家参考,具体如下: mysql 查询结果导出csv文件: select logtime, oper...
    99+
    2022-10-18
  • java怎么解决导出csv文件乱码
    将查询的数据以xls文件导出时(UTF-8编码),数据正常;但以CSV文件导出时,文件中的中文乱码,同样是UTF-8编码,改成GBK编码导出时,中文显示正常。(推荐:java视频教程)解决方法:以CSV方式导出的文件中默认不含BOM信息,通...
    99+
    2020-05-06
    java基础 java 乱码
  • C#怎么把DataTable导出为Excel文件
    本文小编为大家详细介绍“C#怎么把DataTable导出为Excel文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么把DataTable导出为Excel文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-29
  • js导出Excel表格超出26位英文字符怎么办
    这篇文章将为大家详细讲解有关js导出Excel表格超出26位英文字符怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这个需要对Excel表格的表头编码规则有所了解,目...
    99+
    2022-10-19
  • 怎么使用Java+element实现excel导入和导出
    本篇内容介绍了“怎么使用Java+element实现excel导入和导出”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本项目是前端vue3,...
    99+
    2023-07-06
  • mysql如何实现查询结果导出csv文件及导入csv文件到数据库操作_Mysql
    小编给大家分享一下mysql如何实现查询结果导出csv文件及导入csv文件到数据库操作_Mysql,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一...
    99+
    2022-10-18
  • Python怎么实现将Excel内容批量导出为PDF文件
    本篇内容介绍了“Python怎么实现将Excel内容批量导出为PDF文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!序言部分数据然后需要安...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作