网易 - 灵犀办公文档
一. 企业介绍
网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,通过开设新闻、娱乐、体育等30多个内容频道,以及博客、视频、论坛等互动交流,网聚人的力量。
为了给中小企业和个人打造一款综合性办公产品,网易于2020年末成立灵犀事业部,并于2021年正式推出“灵犀”办公文档,这是一款以企业邮箱为基础的协同办公平台,其功能包括日程、在线文档、客户管理和即时通讯等,支持多人、多端实时编辑与查看,可满足企业信息共享与多端同步的需求。
二. 项目背景
现阶段,协同在线办公彻底颠覆了传统的企业管理模式,大大提高了企业的办公效率。网易灵犀办公软件,依托于网易企业邮箱,为用户提供文档、日历、IM等在线办公能力,旨在打造一体式对内对外连接合作的新载体。同时,灵犀文档的客户管理功能也让企业的对外商务沟通更加得心应手,让团队沟通更及时。灵犀文档的面市,为协同办公市场注入了新的活力。
为了在前端解析 Excel 文档,实现多人在线协同编辑,灵犀文档的数据集处理模块完全基于葡萄城的纯前端表格控件 SpreadJS 进行开发。通过嵌入 SpreadJS,文档系统完美复刻了 Excel 的UI架构,并有效提升了系统多人协作和数据处理效率。
三. 项目截图
灵犀文档借助 SpreadJS 实现了如下功能:
通用工具栏:借助 SpreadJS 的组件 API,实现高度类似 Excel 的工具栏面板,为用户提供熟悉的使用体验。
分享与写作:通过定制化开发,让文档与企业通讯工具相结合,实现信息高速流转,让团队沟通更及时。
公式:基于 SpreadJS 内置的 450 多种计算公式进行二次开发,保留常用公式,让数据分析更加方便高效,降低表格的使用门槛。
表格书签:基于 SpreadJS 的 API 所开发出的创新功能,保留用户的访问状态,清晰管理企业级客户信息。
(灵犀文档 - 界面截图)
(灵犀文档 - 单元格类型展示)
(灵犀文档 – 分组功能展示)
四. 选择表格控件 SpreadJS 的主要原因
“文档和表格作为日常基础工具类产品,开发实现他们的难度很大,即需要考虑产品性能,又需要衡量产品的易用性。即便对于网易而言,灵犀文档的研发难度和业务复杂程度也远超我们的想象,如果不借助 SpreadJS,这个项目很难在如此短的时间内落地。”
SpreadJS提供了类 Excel 的UI和开放的组件接口,可用来搭建可多人协同的在线文档系统,有效解决表格文档协同编辑的诸多技术难点。
将 SpreadJS 嵌入系统,可实现 Excel导入导出、在线编辑、数据绑定、表单保护、PDF 导出、自定制打印等功能,通过对其二次扩展,可以满足多人同时在线编辑、共享文档、数据同步、版本管理、批量导出等业务需求,快速开发出支持多人协作的在线文档系统。
针对网易灵犀文档的开发场景,SpreadJS 发挥的产品优势主要体现在:
- 纯前端组件,适用于多人协作系统开发
多人协作需要中心系统的支持,SpreadJS 基于其纯前端的体系架构可以很容易的嵌入系统开发,并以原生的方式嵌入各类应用,如:B/S、H5 小程序、APP 等,完美兼容原生系统。
- 实现精细控制,提供单元格级别的数据操作
SpreadJS的绝大部分功能是支持命令的,这使得数据操作变得十分简单,用户可以针对具体的业务逻辑做出更精细化的操作转换,大幅提高协作效率。
- 提供表格编辑器,支持在线编辑 Excel 文档
SpreadJS 的 表格编辑器由顶部菜单、公式栏、右键菜单、弹出框和状态栏等模块组成,用户仅通过简单的拖拽点击,即可设计各类Excel报表模板,实现数据填报、公式计算、数据管理、数据可视化等功能。
- 支持跨平台开发,提供一流的框架支持及扩展
SpreadJS 已兼容 Angular、React、Vue、TypeScript 等前端开发框架,可嵌入各类终端设备和后端技术框架,无需预装第三方插件,即可二次扩展。
- 提供开放的 API 和高度类似 Excel 的操作模式
SpreadJS 兼容 Excel 90% 以上的常用功能,并支持在线导入、导出Excel 文件。此外,SpreadJS 提供的表格操作行为和处理逻辑与 Excel 几乎一致,其外观、工具栏、对话框、右键菜单等均可自定义。
- 无需依赖 Excel 软件,轻松搭建表格文档协同系统
SpreadJS 是一款开发工具,具备比 Excel 更开放的架构,可帮助开发人员减轻重复编码和测试工作,研发并维护在线文档系统。在优化用户体验的同时,降低研发成本、加速项目落地。
相关文章:

网易 - 灵犀办公文档
一. 企业介绍 网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,通过开设新闻、娱乐、体育等30多个内容频道,以及博客、视频、论坛等互动交流,网聚人的力量。 为了给中小企业和个人打造一款综合性办公产…...

【C++】模板与特化技术全面教程(claude sonnet 4)
第一章:模板的基础概念 (Template Fundamentals) 1.1 什么是模板? 模板 (Template) 是C中的一种泛型编程 (Generic Programming) 机制,它允许我们编写与类型无关的代码。想象一下,如果我们要为不同的数据类型编写相同逻辑的函数&a…...

ABAP设计模式之---“高内聚,低耦合(High Cohesion Low Coupling)”
“高内聚、低耦合”是面向对象编程中非常重要的设计原则,它有助于提高代码的可维护性、扩展性和复用性。 1. 初衷:为什么会有这个原则? 在软件开发中,随着业务需求的复杂化,代码难免会变得越来越庞大。如果开发者将一…...

RagFlow优化代码解析(一)
引子 前文写到RagFlow的环境搭建&推理测试,感兴趣的童鞋可以移步(RagFlow环境搭建&推理测试-CSDN博客)。前文也写过RagFLow参数配置&测试的文档,详见()。很少写关于具体代码的blog,…...

【python与生活】用 Python 从视频中提取音轨:一个实用脚本的开发与应用
在当今数字化的时代,视频内容无处不在。无论是学习教程、会议记录、在线讲座还是娱乐视频,我们每天都会接触到大量的视频资源。有时候,我们可能只对视频中的音频部分感兴趣,比如提取讲座的音频用于后续收听,或者从电影…...

深度强化学习赋能城市消防优化,中科院团队提出DRL新方法破解设施配置难题
在城市建设与发展中,地理空间优化至关重要。从工业园区选址,到公共服务设施布局,它都发挥着关键作用。但传统求解方法存在诸多局限,如今,深度学习技术为其带来了新的转机。 近日,在中国地理学会地理模型与…...
云原生周刊:探索 Gateway API v1.3.0
开源项目推荐 WatchAlert WatchAlert 是一个轻量级、云原生的多数据源监控告警引擎,支持 AI 驱动的智能告警分析,旨在帮助升级您的监控系统架构。该项目基于 Go 和 React 开发,提供了现代化的前后端架构。后端使用 Go 语言,结合…...

008房屋租赁系统技术揭秘:构建智能租赁服务生态
房屋租赁系统技术揭秘:构建智能租赁服务生态 在房地产租赁市场日益活跃的当下,房屋租赁系统成为连接房东与租客的重要数字化桥梁。该系统集成用户管理、房屋信息等多个核心模块,面向管理员、房东和用户三类角色,通过前台展示与后…...
Python训练打卡Day41
简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化:调整一个批次的分布,常用与图像数据特征图:只有卷积操作输出的才叫特征图调度器:直接修改基础学习率 卷积操作常见流程如下: 1. 输入 → 卷积层 → Batch…...

spring-boot-admin实现对微服务监控
spring-boot-admin可以对微服务的状态进行监控,步骤如下: 1、添加spring-boot-admin和nacos依赖 <!-- nacos注册中心 --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-n…...
Linux 权限管理入门:从基础到实践
文章目录 引言一、Linux 权限管理概述二、文件权限值的表示方法三、文件访问权限的设置(chmod)四、file指令:快速识别文件类型五、目录的权限六、普通文件的权限七、权限总结八、粘滞位 引言 在 Linux 系统中,权限管理是确保多用…...

Mycat的监控
参考资料: 参考视频 参考博客 Mysql分库分表(基于Mycat)的基本部署 MySQL垂直分库(基于MyCat) Mysql水平分表(基于Mycat)及常用分片规则 视频参考资料及安装包: https://pan.b…...

Glide源码解析
前言 Glide是一款专为Android设计的开源图片加载库。有以下特点:1.支持高效加载网络、本地及资源图片;2.具备良好的缓存策略及生命周期管理策略;3.提供了简易的API和强大的功能。本文将对其源码进行剖析。 基本使用 dependencies {compile …...

7.RV1126-OPENCV cvtColor 和 putText
一.cvtColor 1.作用 cvtColor 是 OPENCV 里面颜色转换的转换函数。能够实现 RGB 图像转换成灰度图、灰度图转换成 RGB 图像、RGB 转换成 HSV 等等 2.API CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn 0 ); 第一个参数:…...
Android 之 kotlin 语言学习笔记二(编码样式)
参考官方文档:https://developer.android.google.cn/kotlin/style-guide?hlzh-cn#whitespace 1、源文件命名 所有源文件都必须编码为 UTF-8。如果源文件只包含一个顶级类,则文件名应为该类的名称(区分大小写)加上 .kt 扩展名。…...

Redisson单机模式
redisson调用unlock的过程 Redisson 是一个基于 Redis 的 Java 驻内存数据网格(In-Memory Data Grid)框架,提供了分布式和可扩展的数据结构和服务。Redisson 的 unlock 方法用于释放锁。下面是 unlock 方法的调用过程: 获取锁的状…...

数据结构第6章 图(竟成)
第 6 章 图 【考纲内容】 1.图的基本概念 2.图的存储及基本操作:(1) 邻接矩阵法;(2) 邻接表法;(3) 邻接多重表、十字链表 3.图的遍历:(1) 深度优先搜索;(2) 广度优先搜索 4.图的基本应用:(1) 最小 (代价) 生…...

机器人现可完全破解验证码:未来安全技术何去何从?
引言 随着计算机视觉技术的飞速发展,机器学习模型现已能够100%可靠地解决Google的视觉reCAPTCHAv2验证码。这标志着一个时代的结束——自2000年代初以来,CAPTCHA("全自动区分计算机与人类的图灵测试"的缩写)一直是区分…...

CppCon 2014 学习:(Costless)Software Abstractions for Parallel Architectures
硬件和科学计算的演变关系: 几十年来的硬件进步:计算机硬件不断快速发展,从提升单核速度,到多核并行。科学计算的驱动力:科学计算需求推动硬件创新,比如需要更多计算能力、更高性能。当前的解决方案是并行…...

网络爬虫 - App爬虫及代理的使用(十一)
App爬虫及代理的使用 一、App抓包1. App爬虫原理2. reqable的安装与配置1. reqable安装教程2. reqable的配置3. 模拟器的安装与配置1. 夜神模拟器的安装2. 夜神模拟器的配置4. 内联调试及注意事项1. 软件启动顺序2. 开启抓包功能3. reqable面板功能4. 夜神模拟器设置项5. 注意事…...
Kafka集群部署(docker容器方式)SASL认证(zookeeper)
一、服务器环境 序号 部署版本 版本 1 操作系统 CentOS Linux release 7.9.2009 (Core) 2 docker Docker version 20.10.6 3 docker-compose docker-compose version 1.28.2 二、服务规划 序号 服务 名称 端口 1 zookeeper zookeeper 2181,2888,3888 2 ka…...
【python爬虫】利用代理IP爬取filckr网站数据
亮数据官网链接:亮数据官网...

群晖 NAS 如何帮助培训学校解决文件管理难题
在现代教育环境中,数据管理和协同办公的效率直接影响到教学质量和工作流畅性。某培训学校通过引入群晖 NAS,显著提升了部门的协同办公效率。借助群晖的在线协作、自动备份和快照功能,该校不仅解决了数据散乱和丢失的问题,还大幅节…...

NLP学习路线图(十八):Word2Vec (CBOW Skip-gram)
自然语言处理(NLP)的核心挑战在于让机器“理解”人类语言。传统方法依赖独热编码(One-hot Encoding) 表示单词,但它存在严重缺陷:每个单词被视为孤立的符号,无法捕捉词义关联(如“国…...
P1438 无聊的数列/P1253 扶苏的问题
因为这两天在写线性代数的作业,没怎么写题…… P1438 无聊的数列 题目背景 无聊的 YYB 总喜欢搞出一些正常人无法搞出的东西。有一天,无聊的 YYB 想出了一道无聊的题:无聊的数列。。。 题目描述 维护一个数列 ai,支持两种操…...

嵌入式学习笔记 - 新版Keil软件模拟时钟Xtal灰色不可更改的问题
在新版Keil软件中,模拟时钟无法修改XTAL频率,默认只能使用12MHz时钟。这是因为Keil MDK从5.36版本开始,参数配置界面不再支持修改系统XTAL频率,XTAL选项变为灰色,无法修改。这会导致在软件仿真时出现时间错误的问题&…...
k8s的出现解决了java并发编程胡问题了
Kubernetes(K8s)作为一种开源的容器编排平台,极大地简化了应用程序的部署、管理和扩展。这不仅解决了很多基础设施方面的问题,也间接解决了Java并发编程中的一些复杂问题。本文将详细探讨Kubernetes是如何帮助解决Java并发编程中的…...
如何利用大语言模型生成特定格式文风的报告类文章
在这个算法渗透万物的时代,我们不再仅仅满足于大语言模型(LLM)能“写”,更追求它能“写出精髓,写出风格”。尤其在专业且高度格式化的报告类文章领域,仅仅是内容正确已远远不够,文风的精准复刻才是决定报告是否“对味儿”、能否被目标受众有效接受的关键。这不再是简单的…...

黑马Java面试笔记之 集合篇(算法复杂度+ArrayList+)
一. 算法复杂度分析 1.1 时间复杂度 时间复杂度分析:来评估代码的执行耗时的 常见的复杂度表示形式 常见复杂度 1.2 空间复杂度 空间复杂度全称是渐进空间复杂度,表示算法占用的额外存储空间与数据规模之间的增长关系 二. 数组 数组(Array&a…...
【从0-1的HTML】第2篇:HTML标签
文章目录 1.标题标签2.段落标签3.文本标签brbstrongsubsup 4.超链接标签5.图片标签6.表格标签7.列表标签有序列表ol无序列表ul定义列表dl 8.表单标签9.音频标签10.视频标签11.HTML元素分类块级元素内联元素 12.HTML布局13.内联框架13.内联框架 1.标题标签 标题标签:…...