当前位置: 首页 > article >正文

SpreadVue实现内置excel在线编辑并保存为后端可以接受的json格式

SpreadVue实现内置excel在线编辑并保存为后端可以接受的json格式

  • 一、定义excel模板
    • 1.1 用speadVue默认例子,直接在线编辑模板,并绑定工作表
    • 1.2 下载模板excel文件,补充行的公式,并锁定公式不允许编辑
  • 二、实际使用
    • 2.1 初始化刚才保存的excel模板文件
    • 2.2 在录入数据后保存数据

项目背景:需要在线录入部分数据,其他行数据由特定公式计算,且公式不可编辑,用于存在很多行公式,通过前端JS计算非常不方便,且公式一改js要变动的很多,所以这时候推荐使用SpreadVue内置excel

一、定义excel模板

1.1 用speadVue默认例子,直接在线编辑模板,并绑定工作表

在这里插入图片描述

1.2 下载模板excel文件,补充行的公式,并锁定公式不允许编辑

在这里插入图片描述

二、实际使用

2.1 初始化刚才保存的excel模板文件

var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);//这里url是文件请求地址
xhr.responseType = 'blob';
xhr.onload = function (e) {
    if (this.status == 200) {
        var blob = this.response;
        var fd = new FormData();
        fd.append("file", [blob]);
        var fd = new File([blob],  "文件名.xlsx");
        Spread.import(fd, function () {
        }, function () { }, openOptions);
    }
};
xhr.send();

2.2 在录入数据后保存数据

var Spread = designer.getWorkbook();
 var sheetid = 0;
 var sheet = Spread.getSheet(sheetid);
 var table = sheet.tables.all()[0]
 var range = table.range();
 var mm = sheet.getArray(range.row, range.col, 1, range.colCount)[0];//列字段field
 var gg = sheet.getArray(range.row + 1, range.col, range.rowCount, range.colCount);//行数据
 var datalist = new Array();
 var object = {};
 for (var j = 0; j < gg.length; j++) {
     var object = new Object();
     for (var n = 0; n < mm.length; n++) {
         object[mm[n]] = gg[j][n];
     }
     datalist.push(object);
 }
 // console.log(datalist,'datalist')//最终传递给服务器的数据

http://www.kler.cn/a/580154.html

相关文章:

  • 案例分析:安防5G低代码开发网关如何提升城市监控效率
  • 算法与数据结构(两数相加)
  • Android操作CAN总线(基于linux-canutils库,发送、接收、设置过滤器)
  • 【2025】基于PHP+Vue的电影购票系统(源码+文档+调试+图文修改+答疑)
  • 基于muduo+mysql+jsoncpp的简易HTTPWebServer
  • 【医院内部控制专题】7.医院内部控制环境要素剖析(三):人力资源政策
  • 发起请求的步骤
  • JVM 类加载原理之双亲委派机制(JDK8版本)
  • ThreadLocal源码剖析
  • 网络安全通信架构图
  • CPU 负载 和 CPU利用率 的区别
  • 数据结构——树,二叉树
  • 火语言RPA--PDF转Word
  • mysql的锁--一篇读懂所有锁机制
  • 微服务项目如何部署?
  • 截取一对中括号里面的内容
  • 深入解析K8s VolumeMounts中的subPath字段及其应用
  • Unity开发——CanvasGroup组件介绍和应用
  • Netty基础—1.网络编程基础一
  • Python助力区块链数据可视化:从数据到洞见