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

Web:探索 SpreadJS强大的在线电子表格库

1、概述

SpreadJS 是葡萄城结合 40 余年专业控件技术和在电子表格应用领域的经验而推出的纯前端表格控件,基于 HTML5,兼容 450 多种 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,SpreadJS 在界面和功能上与 Excel 高度类似,但又不局限于 Excel,而是为企业信息化系统提供 表格文档协同编辑、 数据填报 和 类 Excel 报表设计 的应用场景支持,极大降低了企业研发成本和项目交付风险。

使用 SpreadJS 的在线表格编辑器,可直接在 Angular、 React、 Vue 等前端框架中实现高效的模板设计、在线编辑和数据绑定等功能,为最终用户提供高度类似 Excel 的使用体验。
在线地址:https://demo.grapecity.com.cn/spreadjs/help/docs/overview
在这里插入图片描述

2、导入

创建一个HTML文件,包括一个用于容纳电子表格的div元素:

<!DOCTYPE html>
<html>
<head><title>SpreadJS导入Excel示例</title><script src="path/to/spread.js"></script> <!-- 引入SpreadJS库 -->
</head>
<body><div id="spreadsheet"></div> <!-- 用于显示电子表格的容器 -->
</body>
</html>

在JavaScript代码中,您可以使用SpreadJS提供的API来导入和处理Excel文件:

// 获取电子表格容器
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("spreadsheet"));// 创建一个文件输入元素,用于选择本地文件
var fileInput = document.createElement("input");
fileInput.type = "file";// 监听文件选择事件
fileInput.addEventListener("change", function(e) {var file = e.target.files[0];var reader = new FileReader();// 读取文件内容reader.onload = function(e) {var data = e.target.result;// 解析Excel文件var workbook = new GC.Spread.Sheets.Workbook(document.createElement("div"));var sheet = workbook.getSheet(0);sheet.fromJSON(JSON.parse(data));// 将解析后的数据加载到电子表格中spread.fromJSON(sheet.toJSON());}// 以二进制方式读取文件reader.readAsBinaryString(file);
});// 将文件输入元素附加到body中
document.body.appendChild(fileInput);// 触发文件选择对话框
fileInput.click();

3、导出Ex

相关文章:

  • 云原生之深入解析如何合并多个kubeconfig文件
  • Linux下protobuf和 protobuf-c安装使用
  • IP地址与代理ip在网络安全中的关键作用
  • Autojs 利用OpenCV识别棋子之天天象棋你马没了
  • Spigot 通过 BuildTools 构建 MineCraft Spigot 官方服务端文件
  • 代码随想录算法训练营第3天| 203.移除链表元素 、 707.设计链表 、 206.反转链表
  • 【Acwing167】木棒(dfs+剪枝)超级详细题解!
  • 【数据库】组合查询 UNION
  • Spring Cloud之微服务
  • 微信小程序笔记功能(富文本editor功能)开发
  • 一文拿捏内网穿透利器之frp(反向代理软件相关)
  • Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)
  • Kafka - 深入了解Kafka基础架构:Kafka的基本概念
  • ios ipa包上传需要什么工具
  • uniapp实现公众号微信登录
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Golang-长连接-状态推送
  • JDK 6和JDK 7中的substring()方法
  • JS笔记四:作用域、变量(函数)提升
  • Laravel5.4 Queues队列学习
  • MySQL用户中的%到底包不包括localhost?
  • spring boot 整合mybatis 无法输出sql的问题
  • Yii源码解读-服务定位器(Service Locator)
  • 编写高质量JavaScript代码之并发
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 关于Java中分层中遇到的一些问题
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 在Docker Swarm上部署Apache Storm:第1部分
  • Spring第一个helloWorld
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 第二十章:异步和文件I/O.(二十三)
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (13)Hive调优——动态分区导致的小文件问题
  • (33)STM32——485实验笔记
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十八)SpringBoot之发送QQ邮件
  • (四)Linux Shell编程——输入输出重定向
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • @GetMapping和@RequestMapping的区别
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • [AIGC] MySQL存储引擎详解
  • [BZOJ1008][HNOI2008]越狱
  • [C#]winform部署PaddleOCRV3推理模型
  • [CLickhouse] 学习小计
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE