js使用xlsx生成二进制文件用于上传(不下载)

这篇具有很好参考价值的文章主要介绍了js使用xlsx生成二进制文件用于上传(不下载)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

业务中经常会处理各种数据,本文介绍了前端通过 xlsx 库将数据转换为 excel 文件用于上传的实现。文章来源地址https://www.toymoban.com/news/detail-539511.html

import * as XLSX from "xlsx";  // 此代码使用版本 0.18.5

interface ObjectAny {
    [key: string]: any;
}

const exportExcelNoDownload = (headers: string[][], data: ObjectAny[]): File => {
    const headerWs = XLSX.utils.aoa_to_sheet(headers);
    const ws = XLSX.utils.sheet_add_json(headerWs, data, {skipHeader: true, origin: 'A2'});
    const wb = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(wb, ws, 'sheet1');
    const fileData = XLSX.write(wb, {type: 'array', compression: true});  // compression 能有效减少文件体积,便于上传
    const newFile = new File([fileData], 'text.xlsx');
    return newFile;
}

// 本地测试一下生成的文件是否正常
const test = () => {
    const headers = [['国家', '城市']];
    const data = [
        {'国家': 'china', '城市': 'shenzhen'},
        {'国家': 'china', '城市': 'guangzhou'},
        {'国家': 'USA', '城市': 'newyork'},
    ];
    const file = exportExcelNoDownload(headers, data);
    const tmpLink = document.createElement("a");
    const objectUrl = URL.createObjectURL(file);

    tmpLink.href = objectUrl;
    tmpLink.download = file.name;
    document.body.appendChild(tmpLink);
    tmpLink.click();

    document.body.removeChild(tmpLink);
    URL.revokeObjectURL(objectUrl);
}

到了这里,关于js使用xlsx生成二进制文件用于上传(不下载)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CMake教程系列-02-使用cmake代码生成二进制

    参考:Cmake安装以及升级(Ubuntu) Win10安装文件: 创建的目录以及代码如下: CMakeLists.txt sample.cpp 目录结构如下:注意多创建一个build目录存放中间文件和最终二进制文件 点击“Configure 我的的vs是2019,在Configure中选择了 点击“Configure”右边的“Generate”。 点击“Generate”右边

    2024年02月04日
    浏览(56)
  • 如何使用VSCode来查看二进制文件

    2023年11月6日,周一下午 目录 方法1:安装插件Binary Viewer 然后用vscode打开一个二进制文件,并点击右上角的\\\"HEX\\\" 方法2:安装插件Binary 然后用vscode打开一个二进制文件,并点击右上角的\\\"B\\\" 特点:功能比较完善 然后用vscode打开一个二进制文件,并点击右上角的\\\"HEX\\\" 特点:功能简

    2024年02月03日
    浏览(47)
  • SSM 前端使用AJAX方式,fromdata文件格式上传二进制流文件

    今天在上课的时候,遇到了一个比较坑的问题,有个学生拿来了她的代码,让我给她看看为什么传值传不过来。 首先,前端是这样的: 后端是这样的: 然后上传文件的配置器是这样的: 她遇到的第一个问题是,后端这里接受值的时候,接受到的id和文件都是null,然后再后续

    2024年02月10日
    浏览(77)
  • golang 中使用 statik 将静态资源编译进二进制文件中

    现在的很多程序都会提供一个 Dashboard 类似的页面用于查看程序状态并进行一些管理的功能,通常都不会很复杂,但是其中用到的图片和网页的一些静态资源,如果需要用户额外存放在一个目录,也不是很方便,如果能打包进程序发布的二进制文件中,用户下载以后可以直接

    2024年01月19日
    浏览(48)
  • JS中的常见二进制数据格式

    格式 描述 用途 示例 ArrayBuffer 固定长度的二进制数据缓冲区,不直接操作具体的数据,而是通过类型数组或DataView对象来读写 用于存储和处理大量的二进制数据,如文件、图像等 let buffer = new ArrayBuffer(16); TypedArray 基于ArrayBuffer对象的视图,提供特定格式的读写接口 用于操作

    2024年04月11日
    浏览(42)
  • 【FPGA仿真】Matlab生成二进制、十六进制的txt数据以及Vivado读取二进制、十六进制数据并将结果以txt格式保存

    在使用Vivado软件进行Verilog程序仿真时可能需要对模块输入仿真的数据,因此我们需要一个产生数据的方法(二进制或者十六进制的数据),Matlab软件是一个很好的工具,当然你也可以使用VS等工具。 以下分别给出了使用Matlab模拟产生二进制和十六进制数据的例子,例子仅供参

    2024年02月01日
    浏览(61)
  • 将数据转二进制流文件,用PostMan发送二进制流请求

    一、将byte数组转二进制流文件,并保存到本地 byte [] oneshotBytes=new byte[]{78,-29,51,-125,86,-105,56,82,-94,-115,-22,-105,0,-45,-48,-114,27,13,38,45,-24,-15,-13,46,88,-90,-66,-29,52,-23,40,-2,116,2,-115,17,36,15,-84,88,-72,22,-86,41,-90,-19,-58,19,99,-4,-63,29,51,-69,117,-120,121,3,-103,-75,44,64,-58,-34,73,-22,110,-90,92,-35,-18,-128,16,-

    2024年02月15日
    浏览(47)
  • java图片转二进制流_java将文件转化成二进制流

    二进制流的主要编码格式是base64码。可以在网上找一些在线转base64编码的网站进行尝试转换。 例如:http://imgbase64.duoshitong.com/然后通过前端展现和下载。 前端显示二进制流图片(src中放置base64码及二进制流) 前端下载二进制流文件(herf中放置base64码及二进制流,download后面放

    2024年02月06日
    浏览(60)
  • Windows环境下Node.js二进制版安装教程

    新版的 Node.js 已自带 npm ,就在 Node.js 下载完成解压后的文件内,的 node_modules 包中。 npm 的作用:是对 Node.js 依赖的包进行管理,类似 maven 。 下载地址 https://nodejs.org/en 下载binary包 解压后 NODE_PATH , node.exe 所在路径。 添加 PATH CMD 命令行中用 npm -v 和 node -v 测试一下是否按照成

    2024年02月14日
    浏览(44)
  • 后端返回二进制流,前端处理二进制文件流,实现预览图片以及PDF

    1、首先预览PDF需要 后端 将响应头 Content-Type 设置为PDF类型 application/pdf ,不能预览,会直接下载 2、 前端 定义接口:并设置相应类型 responseType 为 blob 请求数据:通过 window.URL.createObjectURL(res) 转成本地预览地址, 在通过 window.open() 方法打开转成本地预览地址即可预览PDF,如下

    2024年02月15日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包