线文档,顾名思义就是通过在线的方式对文档进行操作,实现如数据填报、数据计算、可视化、在线导入导出 Excel 文件、自定义系统外观、工具栏、在网页内满足单人或多人编辑并将文件上传至服务端保存的功能。
国内外常见的在线文档,包括:微软Office Online、Google文档、石墨文档、腾讯文档、飞书、语雀等。
通过对比这些软件产品,可以将它们的主要功能点,概括为三个层面:数据填报、协同编辑和类Excel的呈现方式。
可以说,只要满足了上述需求,就可以开发出一款优秀的在线文档。
而SpreadJS纯前端表格控件,恰好满足。
下面,我们就通过Spring Boot + Vue.js的前后分离开发技术,演示如何借助 SpreadJS 搭建一款简单的在线文档系统。
在线文档系统示例
该系统集成了SpreadJS表格控件,目前已经实现了在线读取、编辑Excel 文档的功能,文末提供了示例代码下载,大家可以按照 Readme文档中的步骤运行。
PS:欢迎大家前往SpreadJS 产品官网,了解并学习这款纯前端表格组件,以实现更多在线文档的功能。
如下是系统运行截图。
进入页面(File List的展示文件均为服务器上的文件):
单击 Excel文件,右侧会显示该文件的详细信息:
双击文件夹:
点击某个 Excel文件,打开编辑文件的弹框:
在线对Excel文件进行修改、删除:
技术栈
关键步骤
1、 实现该系统的相关依赖包都写在package.json里,执行命令 npm install 即可安装,主要有:
"@grapecity/spread-sheets": "^13.0.5",
"@grapecity/spread-sheets-resources-zh": "^13.0.5",
"@grapecity/spread-sheets-vue": "^13.0.5",
"@grapecity/spread-sheets-pdf": "^13.0.5",
"@grapecity/spread-sheets-print": "^13.0.5",
"@grapecity/spread-sheets-charts": "^13.0.5",
"@grapecity/spread-sheets-shapes": "^13.0.5",
2、 在SpreadJS.vue文件中引入 SpreadJS 相关安装包:
import "@grapecity/spread-sheets-vue";
import * as GC from "@grapecity/spread-sheets";
import "@grapecity/spread-sheets-charts";
import "@grapecity/spread-sheets-shapes";
3、 在App.vue文件中引入 SpreadJS 的样式文件、中文资源文件:
import '@grapecity/spread-sheets-resources-zh'
import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'
4、 List.vue文件中是主要的页面逻辑,双击文件时弹出弹框,弹框中引入了自定义的组件:
<MySpreadJS :mySpread="mySpread" :filePath="filePath" @done="childDone" :closeSpread='closeSpread'>
</MySpreadJS>
5、 mySpread变量中是从后台返回的文件流,传给MySpreadJS组件,子组件接收到数据后,调用excelIO.open方法打开Excel 文件流,
spreadInitHandle: function(spread) {
this.spread=spread;
let self=this;
let excelIO=new ExcelIO.IO();
excelIO.open(
this.spreadblob as Blob,
function(json) {
let workbookObj=json;
self.spread.fromJSON(workbookObj);
},
function(e) {
alert(e.errorMessage);
});
},
6、 在线编辑Excel文件,并保存。借助excelIO.save方法可以将修改后的文件流传给后台,实现文件的修改功能:
excelIO.save(
curjson,
function(fileblob) {
let formData=new FormData();
formData.append("filePath", self.filePath);
formData.append("type", "update");
formData.append("excelFile", fileblob);
httpUtils.post("/filemanager/savefile", formData).then(response=> {
self.$message({
type: "success",
message: "保存成功!"
});
self.$emit("done");
});},
function(e) {
//process error
console.log(e);
}
);
后台接口介绍
获取某路径下的文件集合:getfolder
获取Excel文件内容:getFile
保存文件:savefile
删除文件:deletefile
以上就是Vue+SpringBoot+SpreadJS 实现的一个简单的在线文档,如需了解详细的实现步骤。
SpreadJS除提供示例中在线读取、编辑Excel 文档的功能外,还提供了Web Excel 组件开发、数据填报、Excel 类报表设计等功能。除此之外,您还可通过调用API对SpreadJS进一步扩展,满足协同编辑、多级上报、填报暂存等更多场景的业务需要,欢迎下载试用。
今天的内容就到这了,不要忘了在评论区留下的意见和建议!
点击“了解更多”即可立即免费体验!
见即所得,不是很熟悉这个词吗?所见即所得代表什么,你看到的就是你得到这通常意味着一个编辑应用程序使用,以说明正在编辑的内容将完全一样的最终结果。与其他文本编辑器相比,“所见即所得” 文本编辑器非常友好。
它指已操作的软件或应用程序所拥有的功能,以及它们具有的许多其他功能。在使用中,此文本编辑器不需要像其他文本编辑器中那样编写语法,因为它配备了图标,只需要单击将要使用并自动格式化的图标之一即可。
此外,该文本编辑器还具有其他优势,例如能够显示一页文本,与图形,电子表格集成,在一个文档中显示照片,自动更正,超媒体,超文本等等。下面是一些用于网页的所见即所得文本编辑器:
CKEditor是一个HTML 文本编辑器,用于并旨在帮助您创建和管理内容布局。该文本编辑器中有许多完整的功能,如可以从Microsoft Word移动,还有额外的部件或工具,能够拖动和下降图片和上传文件,以及更多。
TinyMCE是一个基于Javascript的独立Web平台,该文本编辑器根据LGPL许可作为开源应用程序发布。该文本编辑器旨在与JavaScript 库(例如React,Vue.js,AngularJS)和内容管理系统(例如Joomla和WordPress)轻松集成。另外,一个文本编辑器它还具有许多完整功能,包括4个软件包,其中Community是免费的,Premium,Pro和Enterprice是收费的。相对而言Community实际上非常完整,但是没有上传图像的功能。
Summernote是一个非常简单且免费的文本编辑器。该文本编辑器使用base64编码,因此它不仅可以用于编辑文本,而且还可以直接上传图像,而无需进行任何图像处理。该文本编辑器由jQuery和Bootstrap组成,这是一个简单的UI,因此你可以更轻松地自定义外观或添加和删除工具栏。
Froala是HTML WYSIWYG 编辑器,它易于集成且易于使用,而无需键入大量代码。此插件需要jQuery 1.11.0或更高版本以及Font Awesome 4.4.0。该插件提供了用于PHP,Node.JS,.NET,Java和Python的服务器端SDK。该插件有4种许可,分别是:单个网站许可,开发者许可,商业许可和OEM许可。这个插件还有一个带有多个开发框架的连接器,例如:CakePHP,Joomla,Symfony,Yii,Django,Ruby on Rails,AngularJS,Meteor。
Redactor是一个内容编辑器,可提供流畅,整洁,灵活的设计,并为其用户提供无限的支持。该内容编辑器与MODX紧密集成,提供简单的用户界面,并配有清晰易懂的图标,调制解调器和功能。可以根据需要激活或停用可用的高级功能,以便它可以控制用户活动。
Quilljs是100%免费的文本编辑器,它看起来简单而优雅。该文本编辑器提供了一种配置,你可以在其中自定义外观以及添加和删除工具栏。该文本编辑器也受API驱动,因此可以使用JSON作为其输入和输出来始终如一地确定性地工作。此外,此文本编辑器是跨平台的,因此它支持台式机,平板电脑或移动设备上的所有现代浏览器。
自学的话,首先要理解html的作用。html,hypertext markup language,超文本标记语言,用来展示网页中的内容。同时 HTML 也是我们学习前端开发的基础。随着 web 前端技术的飞速发展,HTML 和 CSS 也成为了编程者的必备技能。而要想做一个网页光会这一门语言是不够的,还需要自学css,JavaScript。其中html和css较JavaScript容易。
可以这样理解,HTML,是一个文件类型,可以被浏览器解析。如果不使用浏览器打开,我们看到的将是一行行代码,在浏览器中打开以后呢,就会出现一些静态效果了。下面介绍一下初步的一些HTML语法知识。
HTML 标签非常注重语义化,很多标签都是通俗易懂的,大大降低了我们学习的难度。这套 HTML 教程更是为了避免初学者走太多的弯路,指出了许多其它 HTML 教程中没有提到的学习误区,并且给初学者提供了一个具体的学习思路,除了注重 HTML 知识点的讲解,更加注重 web 前端开发技巧和思维。帮助大家快速入门,其中包含大量的实践经验,将知识系统化,浓缩为精华,用通俗易懂的语言直指网页设计初学者的痛点。
学海无涯,苦做舟,学习如同修行,只有潜心才可以领悟真谛。HTML 中的每一个小知识点都可以让页面发生不同的变化,现在就让我们行动起来,跟着 HTML 教程的步伐,让我们一起走进 HTML 的世界。
超级文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下:
● 简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。
● 可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。
● 平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。
● 通用性:另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。
B(Browser)/S(Server)架构方向,也是我们以后主攻方向
我们以后主要为企业内部提供解决方案,例如:企业内部的办公系统、供应链管理系统、客户关系管理系统等,而这些系统通常对界面的表现要求较低,对业务处理和数据处理要求较高,并且要求降低升级维护的成本,B/S架构可以更好的被企业接受,所以我们以后主要的方向是开发基于B/S架构的应用,B/S架构的开发通常又被叫做Web开发,Web开发通常包括Browser浏览器端的开发以及Server服务器端的开发。
虽然我们是学习Java后台服务器编程,但是前端页面编写要了解,能看懂,简单的页面效果可以实现即可;
创建一个以 .html或 .htm 结尾的文件,用文本编辑器打开就可以开发
用浏览器打开以.html或.htm的文件就可以自上而下解析执行,不需要编译
● <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
● DTD文件的作用
● 帮助你编写合法的代码
● 它让浏览器正确地显示器代码,或者说DTD只是写给检查器看的
HTML规范是由w3c负责制定的,W3C是世界万维网联盟(World Wide Web:www)
FireFox、Google、IE
<>表示开始标记
</>表示结束标记
<html>开始标签
</html>结束标签
html为元素
HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码。
● HTML 元素以开始标签起始
● HTML 元素以结束标签终止
● 元素的内容是开始标签与结束标签之间的内容
● 某些 HTML 元素具有空内容(empty content)
● 空元素在开始标签中进行关闭(以开始标签的结束而结束)
● 大多数 HTML 元素可拥有属性
大多数 HTML 元素可以嵌套(可以包含其他 HTML 元素)。
HTML 文档由嵌套的 HTML 元素构成。
上面的例子包含三个 HTML 元素。
● <p> 元素:
这个 <p> 元素定义了 HTML 文档中的一个段落。
这个元素拥有一个开始标签 <p>,以及一个结束标签 </p>。
元素内容是:This is my first paragraph。
● <body> 元素:
<body> 元素定义了 HTML 文档的主体。
这个元素拥有一个开始标签 <body>,以及一个结束标签 </body>。
元素内容是另一个 HTML 元素(p 元素)。
这个元素拥有一个开始标签 <html>,以及一个结束标签 </html>
元素内容是另一个 HTML 元素(body 元素)。
即使您忘记了使用结束标签,大多数浏览器也会正确地显示 HTML:
上面的例子在大多数浏览器中都没问题,但不要依赖这种做法。忘记使用结束标签会产生不可预料的结果或错误。
注释:未来的 HTML 版本不允许省略结束标签。
有一些元素必须使用单个标签表示。这些被称为空元素。
一个这样的元素是 hr 。
hr 是一个分组元素,用于表示一个段落级别的内容。
您可以使用以下两种方式之一使用void元素 - 第一种方法是仅指定开始标记,如以下代码所示。
浏览器知道hr是一个void元素,因此不希望看到结束标记。
您可以使元素与空元素一致,如下面的代码所示。
注释是关于HTML元素的有用信息。注释使HTML文档更易读和可理解。
HTML中的注释以标签<!-- 开头,并以 --> 结尾。
浏览器将忽略您在这些标记中放置的任何内容。
以下代码具有HTML注释。
超文本标记语言(外国语简称:HTML)标记标签通常被称为HTML标签,HTML标签是HTML语言中最基本的单位,HTML标签是HTML(标准通用标记语言下的一个应用)最重要的组成部分。
HTML标签的大小写无关的,例如“主体”<body>跟<BODY>表示的意思是一样的,推荐使用小写。
实例
<html> 标签告知浏览器这是一个 HTML 文档。
<html> 标签是 HTML 文档中最外层的元素。
<html> 标签是所有其他 HTML 元素(除了 <!DOCTYPE> 标签)的容器。
所有浏览器都支持 <html> 标签。
段落标签:<p></p>
定义:可以把 HTML 文档分割为若干段落
标题字:<h1></h1>至<h6></h6>
标题是通过 <h1> - <h6> 等标签进行定义的
<h1>定义最大标签,<h6>定义最小标签
换行:<br>
定义:<br> 可插入一个简单的换行符
<br> 标签是空标签,它没有结束标签
注释:<!-- 这是HTML注释 -->
水平线:<hr/>
预留格式<pre>内容</pre>
定义:页面中输入什么样式就显示什么样式
实例:< >
搭配视频效果更佳~~
https://www.ixigua.com/690746767030039398
*请认真填写需求信息,我们会在24小时内与您取得联系。