iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >javascript 实现纯前端将数据导出excel两种方式
  • 655
分享到

javascript 实现纯前端将数据导出excel两种方式

2024-04-02 19:04:59 655人浏览 独家记忆
摘要

目录前言方法一方法二前言 修改之前项目代码的时候,发现前人导出excel是用纯javascript实现的。并没有调用后台接口。 之前从来没这么用过,记录一下。以备不时之需。 方法一

前言

修改之前项目代码的时候,发现前人导出excel是用纯javascript实现的。并没有调用后台接口。

之前从来没这么用过,记录一下。以备不时之需。

方法一

将table标签,包括tr、td等对JSON数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但文件形式上还是html

代码如下:

<html>
<head>
    <p style="font-size: 20px;color: red;">使用table标签方式将json导出xls文件</p>
    <button onclick='tableToExcel()'>导出</button>
</head>
<body>
    <script> 
    const 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(const key in jsonData[i]){
                // 增加	为了不让表格显示科学计数法或者其他格式
                str+=`<td>${ jsonData[i][key] + '	'}</td>`;    
            }
            str+='</tr>';
        }
        // Worksheet名
        const worksheet = 'Sheet1'
        const uri = 'data:application/vnd.ms-excel;base64,';
 
        // 下载的表格模板数据
        const 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编码
    const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
    </script>
</body>
</html>

导出的文件后缀是xls,用office打开的时候不太友好。

然后,我发现了第二个方法

方法二

通过将json遍历进行字符串拼接,将字符串输出到csv文件,代码如下:

<html>
<head>
    <p style="font-size: 20px;color: red;">使用a标签方式将json导出csv文件</p>
    <button onclick='tableToExcel()'>导出</button>
</head>
<body>
    <script>
    const 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 = `姓名,电话,邮箱
`;
        // 增加	为了不让表格显示科学计数法或者其他格式
        for(let i = 0 ; i < jsonData.length ; i++ ){
            for(const key in jsonData[i]){
                str+=`${jsonData[i][key] + '	'},`;    
            }
            str+='
';
        }
        // encodeURIComponent解决中文乱码
        const uri = 'data:text/csv;charset=utf-8,ufeff' + encodeURIComponent(str);
        // 通过创建a标签实现
        const link = document.createElement("a");
        link.href = uri;
        // 对下载的文件命名
        link.download =  "json数据表.csv";
        link.click();
    }
    </script>
</body>
</html>

上边的两段代码复制即可用。

到此这篇关于javascript 实现纯前端将数据导出excel两种方式的文章就介绍到这了,更多相关javascript 数据导出excel内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: javascript 实现纯前端将数据导出excel两种方式

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

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

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

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

下载Word文档
猜你喜欢
  • javascript 实现纯前端将数据导出excel两种方式
    目录前言方法一方法二前言 修改之前项目代码的时候,发现前人导出excel是用纯javascript实现的。并没有调用后台接口。 之前从来没这么用过,记录一下。以备不时之需。 方法一 ...
    99+
    2024-04-02
  • javascript怎么实现纯前端将数据导出excel
    这篇文章主要介绍了javascript怎么实现纯前端将数据导出excel的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript怎么实现纯前端将数据导出excel文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-02
  • vue导出word纯前端的实现方式
    vue导出word纯前端实现 最近项目有个需求导出word,纯前端实现,查了查资料,用docxtemplater简直不要太简单。 直接把官网例子拿过来就可以了。!!! 官网地址 首先...
    99+
    2024-04-02
  • Post 和 Get 两种方式实现数据导出Excel文件并下载
    Post 和 Get 两种方式实现数据导出Excel文件并下载 前端使用Vue,后端使用Springboot。 一般而言,使用post方式是比较方便的。但有时候,需要下载的数据在后端进行查询的时候很比较复杂的查询条件,而这个查询条件是前端进...
    99+
    2023-09-07
    java vue excel
  • JS如何实现将数据导出到Excel
    今天小编给大家分享一下JS如何实现将数据导出到Excel的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法一:将table标...
    99+
    2023-07-02
  • JS实现将数据导出到Excel的方法详解
    修改之前项目代码的时候,发现前人导出excel是用纯javascript实现的。并没有调用后台接口。 之前从来没这么用过,记录一下。以备不时之需。 方法一: 将table标签,包括t...
    99+
    2024-04-02
  • Java中用POI实现将数据导出到Excel
    一、前言 数据导出为Excel在我们写项目的过程中经常用到 需要用到的jar包 poi-3.17.jar 二、具体实现步骤 //第一步创建一个webbook,对应一个Excel...
    99+
    2024-04-02
  • Java中用POI实现将数据导出到Excel的方法
    这篇文章将为大家详细讲解有关Java中用POI实现将数据导出到Excel的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一...
    99+
    2023-06-14
  • Vue前端导出Excel文件的详细实现方案
    目录一、技术选型 二、技术实现 使用 vue-json-excel 插件实现1.安装 vue-json-excel 依赖 2.注册插件到 vue 实例 3.使用方式 基于 sheet...
    99+
    2024-04-02
  • Java实现将导出带格式的Excel数据到Word表格
    在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件。但是如果表格比较长,内容就会存在一...
    99+
    2022-11-16
    Java导出Excel数据到Word Java导出Excel数据 Java 导出数据
  • 如何使用vue实现前端导入excel数据
    目录前言一、主界面先引入导入组件二、封装excel-import组件1.首先是template代码(这里用的是ant vue desgin框架的组件)2.引入接口3.js代码meth...
    99+
    2023-05-17
    vue前端导入excel文件 vue导入excel并预览 前端导入excel文件
  • 前端Vue.js实现json数据导出到doc
    目录组件选择实现一个最简单的导出单条数据导出到word批量数据导出到wrod前言: 先说下需求:如何批量导出表格中勾选的数据,导出格式为word,并具有一定的格式! 开发环境:vue...
    99+
    2024-04-02
  • SpringBootEasyPoi动态导入导出的两种方式实现方法详解
    目录前言一、基于@Excel的 isColumnHidden 属性1.1 实现原理1.2 实现步骤1.3 实现效果二. 基于List< ExcelExportEntity &g...
    99+
    2024-04-02
  • Vue2.0如何实现将页面中表格数据导出excel
    小编给大家分享一下Vue2.0如何实现将页面中表格数据导出excel,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!项目中将后台返回的数据v-for到表格中,然后需要将这个表格导出为EXCE...
    99+
    2024-04-02
  • 解决前后端交互数据出现精度丢失的多种方式
    目录问题:情景复现:解决方式1.前端解决2.后端解决注意:问题: 发送Ajax请求,请求后端接口创建订单并且返回订单号出现订单号精度丢失的情况 情景复现: 前端发送请求到后端接口 ...
    99+
    2024-04-02
  • SpringBoot多数据源的两种实现方式实例
    目录前言基于dynamic-datasource实现多数据源dynamic-datasource介绍dynamic-datasource特性使用 @DS 切换数据源@DS使用实例基于...
    99+
    2024-04-02
  • JS前端模拟Excel条件格式实现数据条效果
    目录需求背景需求分析实现逻辑完整代码实现template 部分style 部分script 部分最终实现效果需求背景 最近业务中遇到一个有意思的需求,是要在现有的表格中实现类似 E...
    99+
    2023-02-28
    JS模拟Excel数据条 JS Excel条件格式数据条
  • springboot配置多个数据源两种方式实现
    目录第一种方式:方法二在我们的实际业务中可能会遇到;在一个项目里面读取多个数据库的数据来进行展示,spring对同时配置多个数据源是支持的。 本文中将展示两种方法来实现这个功能。 s...
    99+
    2024-04-02
  • vue实现导出Word文件(数据流方式)
    目录第一步:安装依赖:jquery 和file-saver第二步:新增jquery.wordexport.js第三步:组件使用vue导出Word文件(模板方式)vue导出word文档...
    99+
    2024-04-02
  • JS前端怎么模拟Excel条件格式实现数据条效果
    这篇文章主要介绍“JS前端怎么模拟Excel条件格式实现数据条效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS前端怎么模拟Excel条件格式实现数据条效果”文章能帮助大家解决问题。需求背景最近...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作