• react项目导出数据doc格式及其他格式方法


    目录

    1.场景

    2.思路

    3.实现 

            第一步,准备数据,隐藏标签,绑定ref 

            第二步,通过模板字符串生成数据


    1.场景

    如下图所示,项目要求对页面中的数据下载到本地,并以某种类型展示,如Word、doc、html等。在这个项目中要求下载为doc文件和HTML文件,其实下载功能还是很简单的,关键的地方就是下载后的格式问题,比如doc其实就是表格或者文档的格式。

     

     

     


    2.思路

    我的思路是这样的,我会根据需求将需要导出的数据,在项目中找个地方以table、th表格标签的形式写,然后设置display:none,目的是不让多出来的结构影响到原本的页面,然后绑定ref,然后再通过模板字符串的形式,渲染出来。下面我是代码实例。


    3.实现 

    第一步,准备数据,隐藏标签,绑定ref 

    1. // 1.准备数据,要下载的数据,以表格的形式书写。
    2. <table style={{display: "none"}} className='table11_7 resultTable'>
    3. <tr>
    4. <th>序号th>
    5. <th>名称th>
    6. <th>是否存在漏洞th>
    7. {/* <th>开放情况th> */}
    8. tr>
    9. {list.map((ele, idx) => (
    10. <tr className='tr'>
    11. <td className='td td1'>{idx + 1}td>
    12. <td className='td td2'>{ele.data.Id}td>
    13. <td className='td td3'>{ele.data.status} td>
    14. {/* <td className='td td4'> td> */}
    15. tr>
    16. ))}
    17. table>

  •  

     第二步,通过模板字符串生成数据

    需要注意的是,如果不以table标签书写,下载后的doc文件很乱,html则没事,所以还是尽量用table标签去写。

    代码中的最后几行是下载功能,个人感觉是挺万金油的,可以根据需要下载为任意类型的文件

     以下代码实例为,点击按钮下载。

    1. <Button
    2. onClick={(e) => {
    3. let resHtml = `
    4. Document
    5. ${listRef.current.innerHTML}
  • ${listRef3.current.innerHTML}
  • `
  • var datastr = "data:text/html;charset=utf-8," + encodeURIComponent(resHtml)
  • var downloadAnchorNode = document.createElement("a")
  • downloadAnchorNode.setAttribute("href", datastr)
  • downloadAnchorNode.setAttribute(
  • "download",
  • `${localStorage.getItem("verboseNameRaw")}-${localStorage.getItem("isStart")}.html`
  • )
  • downloadAnchorNode.click()
  • downloadAnchorNode.remove()
  • }}
  • >
  • .HTML
  • Button>
  • 相关阅读:
    从零学习Python:正则表达式
    代码随想录刷题|LeetCode 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划
    QT学习管理系统
    Linux系列之重定向操作
    _cpp AVL树(map、set等关联式容器的底层结构)
    「PAT乙级真题解析」Basic Level 1108 String复读机 (问题分析+完整步骤+伪代码描述+提交通过代码)
    【uniapp】使用扫码插件,解决uni.scanCode扫码效率低的问题
    Android攻城狮学鸿蒙-配置
    bcftools学习笔记丨软件简介、安装方式、使用方法、核心功能、参数解释等一文速览
    java框架-Springboot3-数据访问
  • 原文地址:https://blog.csdn.net/wanghaoyingand/article/details/126335876